wangmengzhao
2023-12-13 d8228730095cdcaccb40dd2dc290fc44779e340a
wumei-smart-master/vue/src/views/equipmentManagement/installation.vue
@@ -1,241 +1,468 @@
<template>
    <div id="" style="padding:6px;">
        <el-card style="margin-bottom:6px;">
            <el-form :model="queryParams" ref="queryForm" :inline="true">
                <el-form-item label="状态" prop="status">
                    <el-select v-model="state" placeholder="菜单状态" size="mini">
                        <el-option label="全部" :value="-1" />
                        <el-option label="未派单" :value="0" />
                        <el-option label="已派单" :value="1" />
                        <el-option label="已接单" :value="2" />
                        <el-option label="已完成" :value="3" />
                    </el-select>
                </el-form-item>
                <el-form-item label="等级" prop="level">
                    <el-select v-model="level" placeholder="菜单状态" :disabled="erectoListLevel.length == 0" size="mini">
                        <el-option label="本级" :value="0" />
                        <el-option label="下级" :value="1" />
                    </el-select>
                </el-form-item>
                <el-form-item v-if="level == 1 && erectoListLevel.length > 0" label="下级联营商" prop="nextlevel">
                    <el-select v-model="nextlevel" placeholder="菜单状态" size="mini">
                        <el-option v-for="item in erectoListLevel" :label="item.dept.deptName" :value="item.userId" />
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button size="mini" type="primary" icon="el-icon-search"
                        @click="changePage(1)">搜索</el-button></el-form-item>
                <el-form-item v-if="roleKey=='tenant'||roleKey=='tenanthelper'">
                    <el-button size="mini" type="primary" icon="el-icon-message-solid"
                        @click="openTimeOutModal">超时配置</el-button></el-form-item>
                <el-form-item style="float: right;" v-if="roleKey !== 'admin'">
                    <el-button type="primary" v-hasPermi="['iot:device:add']" plain icon="el-icon-plus" size="mini"
                        @click="openAZModal">新增</el-button>
                </el-form-item>
            </el-form>
            <el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
                <el-table-column type="selection" fixed width="55">
                </el-table-column>
                <el-table-column prop="id" label="编号" width="60">
                </el-table-column>
                <el-table-column label="安装信息">
                    <el-table-column prop="device" label="设备名称" width="120">
                        <template slot-scope="scope">
                            <div>
                                {{ scope.row.device && scope.row.device.deviceName ? scope.row.device.deviceName : '--' }}
                            </div>
  <div id="" style="padding: 6px">
    <el-card style="margin-bottom: 6px">
      <el-form :model="queryParams" ref="queryForm" :inline="true">
        <el-form-item label="状态" prop="status">
          <el-select v-model="state" placeholder="菜单状态" size="mini">
            <el-option label="全部" :value="-1" />
            <el-option label="未派单" :value="0" />
            <el-option label="已派单" :value="1" />
            <el-option label="已接单" :value="2" />
            <el-option label="已完成" :value="3" />
          </el-select>
        </el-form-item>
                        </template>
                    </el-table-column>
                    <el-table-column prop="erectoName" label="安装工人" width="120">
                    </el-table-column>
        <el-form-item label="超时" prop="level">
          <el-select
            v-model="timeOutSelect"
            placeholder="超时查询"
            :disabled="erectoListLevel.length == 0"
            size="mini"
          >
            <el-option label="全部" :value="0" />
            <el-option label="接单超时" :value="1" />
            <el-option label="接单超时" :value="2" />
          </el-select>
        </el-form-item>
        <el-form-item label="等级" prop="level">
          <el-select
            v-model="level"
            placeholder="菜单状态"
            :disabled="erectoListLevel.length == 0"
            size="mini"
          >
            <el-option label="本级" :value="0" />
            <el-option label="下级" :value="1" />
          </el-select>
        </el-form-item>
        <el-form-item
          v-if="level == 1 && erectoListLevel.length > 0"
          label="下级联营商"
          prop="nextlevel"
        >
          <el-select v-model="nextlevel" placeholder="菜单状态" size="mini">
            <el-option
              v-for="item in erectoListLevel"
              :label="item.dept.deptName"
              :value="item.userId"
            />
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button
            size="mini"
            type="primary"
            icon="el-icon-search"
            @click="changePage(1)"
            >搜索</el-button
          ></el-form-item
        >
        <el-form-item v-if="roleKey == 'tenant' || roleKey == 'tenanthelper'">
          <el-button
            size="mini"
            type="primary"
            icon="el-icon-message-solid"
            @click="openTimeOutModal"
            >超时配置</el-button
          ></el-form-item
        >
        <el-form-item style="float: right" v-if="roleKey !== 'admin'">
          <el-button
            type="primary"
            v-hasPermi="['iot:device:add']"
            plain
            icon="el-icon-plus"
            size="mini"
            @click="openAZModal"
            >新增</el-button
          >
        </el-form-item>
      </el-form>
      <el-table
        :data="tableData"
        style="width: 100%"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" fixed width="55"> </el-table-column>
        <el-table-column prop="id" label="编号" width="60"> </el-table-column>
        <el-table-column label="安装信息">
          <el-table-column prop="device" label="设备名称" width="120">
            <template slot-scope="scope">
              <div>
                {{
                  scope.row.device && scope.row.device.deviceName
                    ? scope.row.device.deviceName
                    : "--"
                }}
              </div>
            </template>
          </el-table-column>
          <el-table-column prop="erectoName" label="安装工人" width="120">
          </el-table-column>
                    <el-table-column prop="appointmentTime" label="预约时间" width="150">
                        <template slot-scope="scope">
                            <div>
                                {{ scope.row.appointmentTime ? scope.row.appointmentTime : '--' }}
                            </div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="remark" label="订单备注">
                        <template slot-scope="scope">
                            <div>
                                {{ scope.row.remark ? scope.row.remark : '--' }}
                            </div>
                        </template>
                    </el-table-column>
          <el-table-column prop="appointmentTime" label="预约时间" width="150">
            <template slot-scope="scope">
              <div>
                {{
                  scope.row.appointmentTime ? scope.row.appointmentTime : "--"
                }}
              </div>
            </template>
          </el-table-column>
          <el-table-column prop="remark" label="订单备注">
            <template slot-scope="scope">
              <div>
                {{ scope.row.remark ? scope.row.remark : "--" }}
              </div>
            </template>
          </el-table-column>
        </el-table-column>
        <el-table-column label="订单状态" prop="state" width="120">
          <template slot-scope="scope">
            <div v-if="scope.row.state == 0">未派单</div>
            <div v-if="scope.row.state == 1">已派单</div>
            <div v-if="scope.row.state == 2">已接单</div>
            <div v-if="scope.row.state == 3">已完成</div>
                </el-table-column>
                <el-table-column label="订单状态" prop="state" width="120">
                    <template slot-scope="scope">
                        <div v-if="scope.row.state == 0">
                            未派单
                        </div>
                        <div v-if="scope.row.state == 1">
                            已派单
                        </div>
                        <div v-if="scope.row.state == 2">
                            已接单
                        </div>
                        <div v-if="scope.row.state == 3">
                            已完成
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="用户信息">
                    <el-table-column prop="userName" label="用户姓名" width="120">
                    </el-table-column>
                    <el-table-column prop="userPhone" label="用户电话" width="120">
                    </el-table-column>
                    <el-table-column prop="address" label="安装地址">
                    </el-table-column>
                </el-table-column>
                <!-- <el-table-column label="评价信息">
            <div v-if="scope.row.receiveTimeoutFlag == 1">
              <el-tag size="mini" effect="dark" type="danger">接单超时</el-tag>
            </div>
            <div v-if="scope.row.finishTimeoutFlag == 1">
              <el-tag size="mini" effect="dark" type="warning">结单超时</el-tag>
            </div>
          </template>
        </el-table-column>
        <el-table-column label="用户信息">
          <el-table-column prop="userName" label="用户姓名" width="120">
          </el-table-column>
          <el-table-column prop="userPhone" label="用户电话" width="120">
          </el-table-column>
          <el-table-column prop="address" label="安装地址"> </el-table-column>
        </el-table-column>
        <!-- <el-table-column label="评价信息">
                    <el-table-column prop="score" label="评分" width="120">
                    </el-table-column>
                    <el-table-column prop="evaluate" label="评价" minWidth="120">
                    </el-table-column>
                </el-table-column> -->
                <el-table-column label="操作" fixed="right" align="center" width="150" class-name="small-padding fixed-width"
                    v-if="roleKey !== 'admin'">
                    <template slot-scope="scope">
                        <div style="display: flex;justify-content: space-around;">
                            <el-button v-if="scope.row.state != 3" size="small" type="primary" style="padding:5px;"
                                icon="el-icon-edit" v-hasPermi="['iot:device:edit']"
                                @click="editModal(scope.row)">修改</el-button>
                            <el-button v-if="scope.row.state == 0" size="small" type="danger" style="padding:5px;"
                                icon="el-icon-delete" v-hasPermi="['iot:device:remove']"
                                @click="delModal(scope.row)">删除</el-button>
                            <el-button v-if="scope.row.state == 1 && scope.row.erectoName == nickName" size="small"
                                type="success" style="padding:5px;" icon="el-icon-odometer"
                                @click="JDModal(scope.row)">接单</el-button>
                            <el-button v-if="scope.row.state == 2 && scope.row.erectoName == nickName" size="small"
                                type="success" style="padding:5px;" icon="el-icon-check"
                                @click="jdModal(scope.row)">结单</el-button>
                            <el-button v-if="scope.row.state == 3" size="small" type="success" style="padding:5px;"
                                icon="el-icon-view" @click="viewModal(scope.row)">查看</el-button>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="操作" fixed="right" align="center" width="150" class-name="small-padding fixed-width"
                    v-if="roleKey == 'admin'">
                    <template slot-scope="scope">
                        <div style="display: flex;justify-content: space-around;">
                            <el-button v-if="scope.row.state == 3" size="small" type="success" style="padding:5px;"
                                icon="el-icon-view" @click="viewModal(scope.row)">查看</el-button>
                        </div>
                    </template>
                </el-table-column>
            </el-table>
            <el-pagination background :current-page="pageIndex" @current-change="changePage" :page-size="pageSize"
                layout="prev, pager, next" :total="total" style="margin-top: 12px;">
            </el-pagination>
        </el-card>
        <el-table-column
          label="操作"
          fixed="right"
          align="center"
          width="150"
          class-name="small-padding fixed-width"
          v-if="roleKey !== 'admin'"
        >
          <template slot-scope="scope">
            <div style="display: flex; justify-content: space-around">
              <el-button
                v-if="scope.row.state != 3"
                size="small"
                type="primary"
                style="padding: 5px"
                icon="el-icon-edit"
                v-hasPermi="['iot:device:edit']"
                @click="editModal(scope.row)"
                >修改</el-button
              >
              <el-button
                v-if="scope.row.state == 0"
                size="small"
                type="danger"
                style="padding: 5px"
                icon="el-icon-delete"
                v-hasPermi="['iot:device:remove']"
                @click="delModal(scope.row)"
                >删除</el-button
              >
              <el-button
                v-if="scope.row.state == 1 && scope.row.erectoName == nickName"
                size="small"
                type="success"
                style="padding: 5px"
                icon="el-icon-odometer"
                @click="JDModal(scope.row)"
                >接单</el-button
              >
              <el-button
                v-if="scope.row.state == 2 && scope.row.erectoName == nickName"
                size="small"
                type="success"
                style="padding: 5px"
                icon="el-icon-check"
                @click="jdModal(scope.row)"
                >结单</el-button
              >
              <el-button
                v-if="scope.row.state == 3"
                size="small"
                type="success"
                style="padding: 5px"
                icon="el-icon-view"
                @click="viewModal(scope.row)"
                >查看</el-button
              >
            </div>
          </template>
        </el-table-column>
        <el-table-column
          label="操作"
          fixed="right"
          align="center"
          width="150"
          class-name="small-padding fixed-width"
          v-if="roleKey == 'admin'"
        >
          <template slot-scope="scope">
            <div style="display: flex; justify-content: space-around">
              <el-button
                v-if="scope.row.state == 3"
                size="small"
                type="success"
                style="padding: 5px"
                icon="el-icon-view"
                @click="viewModal(scope.row)"
                >查看</el-button
              >
            </div>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        background
        :current-page="pageIndex"
        @current-change="changePage"
        :page-size="pageSize"
        layout="prev, pager, next"
        :total="total"
        style="margin-top: 12px"
      >
      </el-pagination>
    </el-card>
        <el-dialog :title="title" :visible.sync="AZModal" width="800">
            <div class="azmodal">
                <el-form :model="form" :rules="rules" ref="form">
                    <el-form-item label="设备" :label-width="formLabelWidth" prop="deviceId">
                        <el-select v-model="form.deviceId" placeholder="请选择" :disabled="title == '修改安装单' || view">
                            <el-option v-for="item in deviceList" :label="item.deviceName"
                                :value="item.deviceId"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="安装工人" :label-width="formLabelWidth" prop="erectoId">
                        <el-select v-model="form.erectoId" placeholder="请选择"
                            :disabled="form.state > 1 || roleKey == 'tenantservice'">
                            <el-option v-for="item in erectoList" :label="item.nickName" :value="item.userId"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="订单状态" :label-width="formLabelWidth" prop="state">
                        <el-radio-group v-model="form.state" disabled>
                            <el-radio :label="0">未指派</el-radio>
                            <el-radio :label="1">已派单</el-radio>
                            <el-radio :label="2">已接单</el-radio>
                            <el-radio :label="3">已完成</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <el-form-item label="用户姓名" :label-width="formLabelWidth" prop="userName">
                        <el-input v-model="form.userName" autocomplete="off" :disabled="view"></el-input>
                    </el-form-item>
                    <el-form-item label="用户电话" :label-width="formLabelWidth" prop="userPhone">
                        <el-input v-model="form.userPhone" autocomplete="off" :disabled="view"></el-input>
                    </el-form-item>
                    <el-form-item label="安装地址" :label-width="formLabelWidth" prop="address">
                        <el-input v-model="form.address" autocomplete="off" :disabled="view"></el-input>
                    </el-form-item>
                    <el-form-item label="预约时间" :label-width="formLabelWidth">
                        <el-date-picker v-model="form.appointmentTime" type="datetime" placeholder="选择日期时间"
                            :disabled="form.state == 3" value-format="yyyy-MM-dd HH:mm:ss">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item label="订单备注" :label-width="formLabelWidth">
                        <el-input type="textarea" v-model="form.remark" :disabled="view"></el-input>
                    </el-form-item>
                    <el-form-item label="安装证明" v-if="view" :label-width="formLabelWidth">
                        <img :src="form.imgUrl" alt="">
                    </el-form-item>
                    <el-form-item label="上传图片" v-if="form.state == 3 && !view" :label-width="formLabelWidth">
                        <el-upload ref="uploadImg" action="#" :on-change="handleChange" list-type="picture-card"
                            :multiple="false" :auto-upload="false" :on-preview="handlePictureCardPreview"
                            :headers="headerObj" :limit="1" :on-exceed="exceed" :on-remove="handleRemove">
                            <i class="el-icon-plus"></i>
                        </el-upload>
                        <el-dialog :visible.sync="dialogVisible">
                            <img width="100%" :src="dialogImageUrl" alt="">
                        </el-dialog>
                    </el-form-item>
                    <el-form-item label="用户评分" v-if="form.isRate" :label-width="formLabelWidth">
                        <el-rate disabled v-model="form.score" style="padding-top: 8px;"></el-rate>
                    </el-form-item>
                    <el-form-item label="用户评价" v-if="form.isRate" :label-width="formLabelWidth">
                        <el-input type="textarea" disabled v-model="form.evaluate" :disabled="view"></el-input>
                    </el-form-item>
                </el-form>
            </div>
            <div slot="footer" class="dialog-footer">
                <el-button @click="AZModal = false" :disabled="view" size="mini">取 消</el-button>
                <el-button type="primary" @click="submitForm('form')" :disabled="view" size="mini">确 定</el-button>
            </div>
        </el-dialog>
        <el-dialog title="删除数据" :visible.sync="deleteModal" width="30%">
            <span>是否删除该条数据</span>
            <span slot="footer" class="dialog-footer">
                <el-button @click="deleteModal = false" size="mini">取 消</el-button>
                <el-button type="primary" @click="delDate" size="mini">确 定</el-button>
            </span>
        </el-dialog>
        <el-dialog title="接单" :visible.sync="acceptModal" width="30%">
            <span>是否确认接单?此操作不可恢复!</span>
            <span slot="footer" class="dialog-footer">
                <el-button @click="acceptModal = false" size="mini">取 消</el-button>
                <el-button type="primary" @click="add" size="mini">确 定</el-button>
            </span>
        </el-dialog>
        <el-dialog title="超时配置" :visible.sync="timeOutModal">
            <el-form :model="timeForm" :rules="timeRules" ref="timeForm">
                <el-form-item label="派单接单超时间隔(单位:分钟)" :label-width="timeformLabelWidth" prop="ReceiveTimeout">
                    <el-input v-model="timeForm.ReceiveTimeout" autocomplete="off"></el-input>
                </el-form-item>
                <el-form-item label="接单完成超时间隔(单位:分钟)" :label-width="timeformLabelWidth" prop="FinishTimeout">
                    <el-input v-model="timeForm.FinishTimeout" autocomplete="off"></el-input>
                </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button @click="timeOutModal = false" size="mini">取 消</el-button>
                <el-button type="primary" @click="submitTimeForm('timeForm')" size="mini">确 定</el-button>
            </div>
        </el-dialog>
    </div>
    <el-dialog :title="title" :visible.sync="AZModal" width="800">
      <div class="azmodal">
        <el-form :model="form" :rules="rules" ref="form">
          <el-form-item
            label="设备"
            :label-width="formLabelWidth"
            prop="deviceId"
          >
            <el-select
              v-model="form.deviceId"
              placeholder="请选择"
              :disabled="title == '修改安装单' || view"
            >
              <el-option
                v-for="item in deviceList"
                :label="item.deviceName"
                :value="item.deviceId"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            label="安装工人"
            :label-width="formLabelWidth"
            prop="erectoId"
          >
            <el-select
              v-model="form.erectoId"
              placeholder="请选择"
              :disabled="form.state > 1 || roleKey == 'tenantservice'"
            >
              <el-option
                v-for="item in erectoList"
                :label="item.nickName"
                :value="item.userId"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            label="订单状态"
            :label-width="formLabelWidth"
            prop="state"
          >
            <el-radio-group v-model="form.state" disabled>
              <el-radio :label="0">未指派</el-radio>
              <el-radio :label="1">已派单</el-radio>
              <el-radio :label="2">已接单</el-radio>
              <el-radio :label="3">已完成</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item
            label="用户姓名"
            :label-width="formLabelWidth"
            prop="userName"
          >
            <el-input
              v-model="form.userName"
              autocomplete="off"
              :disabled="view"
            ></el-input>
          </el-form-item>
          <el-form-item
            label="用户电话"
            :label-width="formLabelWidth"
            prop="userPhone"
          >
            <el-input
              v-model="form.userPhone"
              autocomplete="off"
              :disabled="view"
            ></el-input>
          </el-form-item>
          <el-form-item
            label="安装地址"
            :label-width="formLabelWidth"
            prop="address"
          >
            <el-input
              v-model="form.address"
              autocomplete="off"
              :disabled="view"
            ></el-input>
          </el-form-item>
          <el-form-item label="预约时间" :label-width="formLabelWidth">
            <el-date-picker
              v-model="form.appointmentTime"
              type="datetime"
              placeholder="选择日期时间"
              :disabled="form.state == 3"
              value-format="yyyy-MM-dd HH:mm:ss"
            >
            </el-date-picker>
          </el-form-item>
          <el-form-item label="订单备注" :label-width="formLabelWidth">
            <el-input
              type="textarea"
              v-model="form.remark"
              :disabled="view"
            ></el-input>
          </el-form-item>
          <el-form-item
            label="安装证明"
            v-if="view"
            :label-width="formLabelWidth"
          >
            <img :src="form.imgUrl" alt="" />
          </el-form-item>
          <el-form-item
            label="上传图片"
            v-if="form.state == 3 && !view"
            :label-width="formLabelWidth"
          >
            <el-upload
              ref="uploadImg"
              action="#"
              :on-change="handleChange"
              list-type="picture-card"
              :multiple="false"
              :auto-upload="false"
              :on-preview="handlePictureCardPreview"
              :headers="headerObj"
              :limit="1"
              :on-exceed="exceed"
              :on-remove="handleRemove"
            >
              <i class="el-icon-plus"></i>
            </el-upload>
            <el-dialog :visible.sync="dialogVisible">
              <img width="100%" :src="dialogImageUrl" alt="" />
            </el-dialog>
          </el-form-item>
          <el-form-item
            label="用户评分"
            v-if="form.isRate"
            :label-width="formLabelWidth"
          >
            <el-rate
              disabled
              v-model="form.score"
              style="padding-top: 8px"
            ></el-rate>
          </el-form-item>
          <el-form-item
            label="用户评价"
            v-if="form.isRate"
            :label-width="formLabelWidth"
          >
            <el-input
              type="textarea"
              disabled
              v-model="form.evaluate"
              :disabled="view"
            ></el-input>
          </el-form-item>
        </el-form>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="AZModal = false" :disabled="view" size="mini"
          >取 消</el-button
        >
        <el-button
          type="primary"
          @click="submitForm('form')"
          :disabled="view"
          size="mini"
          >确 定</el-button
        >
      </div>
    </el-dialog>
    <el-dialog title="删除数据" :visible.sync="deleteModal" width="30%">
      <span>是否删除该条数据</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="deleteModal = false" size="mini">取 消</el-button>
        <el-button type="primary" @click="delDate" size="mini">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog title="接单" :visible.sync="acceptModal" width="30%">
      <span>是否确认接单?此操作不可恢复!</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="acceptModal = false" size="mini">取 消</el-button>
        <el-button type="primary" @click="add" size="mini">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog title="超时配置" :visible.sync="timeOutModal">
      <el-form :model="timeForm" :rules="timeRules" ref="timeForm">
        <el-form-item
          label="派单接单超时间隔(单位:分钟)"
          :label-width="timeformLabelWidth"
          prop="ReceiveTimeout"
        >
          <el-input
            v-model="timeForm.ReceiveTimeout"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          label="接单完成超时间隔(单位:分钟)"
          :label-width="timeformLabelWidth"
          prop="FinishTimeout"
        >
          <el-input
            v-model="timeForm.FinishTimeout"
            autocomplete="off"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="timeOutModal = false" size="mini">取 消</el-button>
        <el-button
          type="primary"
          @click="submitTimeForm('timeForm')"
          size="mini"
          >确 定</el-button
        >
      </div>
    </el-dialog>
  </div>
</template>
<script>
import request from '@/utils/request'
import request from "@/utils/request";
import FileUpload from "@/components/FileUpload/index.vue";
import {
    getToken
} from "@/utils/auth";
import { getToken } from "@/utils/auth";
// import {
//     listAlertLog,
//     getAlertLog,
@@ -245,594 +472,636 @@
// } from "@/api/iot/alertLog";
export default {
    // name: "AlertLog",
    // dicts: ['iot_alert_level', 'iot_process_status'],
    components: {
        FileUpload
    },
    data() {
        return {
            timeForm: {
                ReceiveTimeout: 0,
                FinishTimeout: 0,
            },
            timeRules: {
                ReceiveTimeout: [
                    { required: true, message: "派单接单超时间隔不能为空", trigger: "blur" }
                ],
                FinishTimeout: [
                    { required: true, message: "接单完成超时间隔不能为空", trigger: "blur" }
                ],
            },
            timeOutModal: false,
            nickName: localStorage.getItem('nickName'),
            headerObj: {
                Authorization: "Bearer " + getToken()
            },
            acceptModal: false,
            acceptDateParams: {},
            nextlevel: 0,
            level: 0,
            title: '创建安装单',
            deleteModal: false,
            pageIndex: 1,
            pageSize: 10,
            total: 20,
            searchName: '',
            queryParams: {
                WXBody: '未派单',
                PDBody: '未派单'
            },
            WXBodyType: [{ label: '全部工单', value: '全部工单' }, { label: '未派单', value: '未派单' }, { label: 'num1', value: 'num1' }],
            rules: {
                deviceId: [
                    { required: true, message: '请选择设备', trigger: 'change' }
                ],
                erectoId: [
                    { required: true, message: "请选择安装工", trigger: "change" }
                ],
                userName: [
                    { required: true, message: "用户姓名不能为空", trigger: "blur" }
                ],
                userPhone: [
                    { required: true, trigger: "blur", message: "请输入您的手机号码" },
                    { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
                ],
                address: [
                    { required: true, message: "安装地址不能为空", trigger: "blur" }
                ],
            },
            form: {},
            tableData: [
            ],
            timeformLabelWidth: '215px',
            formLabelWidth: '120px',
            AZModal: false,
            deviceList: [],
            state: -1,
            id: 0,
            erectoList: [],
            erectoListLevel: [],
            roleKey: localStorage.getItem('roleKey'),
            dialogImageUrl: '',
            dialogVisible: false,
            view: false,
            delDeviceId:0
  // name: "AlertLog",
  // dicts: ['iot_alert_level', 'iot_process_status'],
  components: {
    FileUpload,
  },
  data() {
    return {
      timeOutSelect: 0,
      timeForm: {
        ReceiveTimeout: 0,
        FinishTimeout: 0,
      },
      timeRules: {
        ReceiveTimeout: [
          {
            required: true,
            message: "派单接单超时间隔不能为空",
            trigger: "blur",
          },
        ],
        FinishTimeout: [
          {
            required: true,
            message: "接单完成超时间隔不能为空",
            trigger: "blur",
          },
        ],
      },
      timeOutModal: false,
      nickName: localStorage.getItem("nickName"),
      headerObj: {
        Authorization: "Bearer " + getToken(),
      },
      acceptModal: false,
      acceptDateParams: {},
      nextlevel: 0,
      level: 0,
      title: "创建安装单",
      deleteModal: false,
      pageIndex: 1,
      pageSize: 10,
      total: 20,
      searchName: "",
      queryParams: {
        WXBody: "未派单",
        PDBody: "未派单",
      },
      WXBodyType: [
        { label: "全部工单", value: "全部工单" },
        { label: "未派单", value: "未派单" },
        { label: "num1", value: "num1" },
      ],
      rules: {
        deviceId: [
          { required: true, message: "请选择设备", trigger: "change" },
        ],
        erectoId: [
          { required: true, message: "请选择安装工", trigger: "change" },
        ],
        userName: [
          { required: true, message: "用户姓名不能为空", trigger: "blur" },
        ],
        userPhone: [
          { required: true, trigger: "blur", message: "请输入您的手机号码" },
          {
            pattern: /^1[3456789]\d{9}$/,
            message: "手机号码格式不正确",
            trigger: "blur",
          },
        ],
        address: [
          { required: true, message: "安装地址不能为空", trigger: "blur" },
        ],
      },
      form: {},
      tableData: [],
      timeformLabelWidth: "215px",
      formLabelWidth: "120px",
      AZModal: false,
      deviceList: [],
      state: -1,
      id: 0,
      erectoList: [],
      erectoListLevel: [],
      roleKey: localStorage.getItem("roleKey"),
      dialogImageUrl: "",
      dialogVisible: false,
      view: false,
      delDeviceId: 0,
    };
  },
  mounted() {
    console.log(this.nickName);
    this.getList();
    this.getErectoList();
    this.getErectoListLevel();
    // this.selecttimeout()
  },
  methods: {
    submitTimeForm() {
      this.$refs["timeForm"].validate((valid) => {
        if (valid) {
          this.editTimeOut();
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    mounted() {
        console.log(this.nickName);
        this.getList();
        this.getErectoList()
        this.getErectoListLevel()
        // this.selecttimeout()
    },
    methods: {
        submitTimeForm() {
            this.$refs['timeForm'].validate((valid) => {
                if (valid) {
                    this.editTimeOut()
                } else {
                    console.log('error submit!!');
                    return false;
                }
            });
        },
        editTimeOut() {
            let data = {
                receiveTimeout: this.timeForm.ReceiveTimeout,
                finishTimeout: this.timeForm.FinishTimeout,
                orderType: 1,
                userId: localStorage.getItem('userID')
            }
            request({
                url: `/iot/deviceOrder/updatetimeout`,
                method: "put",
                params: data,
            }).then((res) => {
                console.log(res);
                if (res.code == 200) {
                    this.$message({
                        message: '修改成功',
                        type: 'success'
                    });
                    this.timeOutModal = false
                } else {
                    this.$message({
                        message: '修改失败',
                        type: 'error'
                    });
                }
            }).catch((res) => {
                this.$message({
                    message: '修改失败',
                    type: 'error'
                });
            })
        },
        getTimeOut() {
            let data = {
                orderType: 1,
                userId: localStorage.getItem('userID')
            }
            request({
                url: `/iot/deviceOrder/selecttimeout`,
                method: "get",
                params: data,
            }).then((res) => {
                console.log(res);
                if (res.code == 200) {
                    this.timeForm.ReceiveTimeout = res.data.receiveTimeout
                    this.timeForm.FinishTimeout = res.data.finishTimeout
                } else {
                    this.timeForm.ReceiveTimeout = 0
                    this.timeForm.FinishTimeout = 0
                }
            }).catch((res) => {
                this.timeForm.ReceiveTimeout = 0
                this.timeForm.FinishTimeout = 0
                return false
            })
        },
        openTimeOutModal() {
            this.getTimeOut()
            this.timeOutModal = true
        },
        exceed(e) {
            console.log(e);
    editTimeOut() {
      let data = {
        receiveTimeout: this.timeForm.ReceiveTimeout,
        finishTimeout: this.timeForm.FinishTimeout,
        orderType: 1,
        userId: localStorage.getItem("userID"),
      };
      request({
        url: `/iot/deviceOrder/updatetimeout`,
        method: "put",
        params: data,
      })
        .then((res) => {
          console.log(res);
          if (res.code == 200) {
            this.$message({
                message: '图片最多上传一张',
                type: 'error'
              message: "修改成功",
              type: "success",
            });
        },
        handleRemove(file, fileList) {
            this.form.imgUrl = ''
            console.log(file, fileList);
        },
        handleChange(file) {
            if (file.size > 1024 * 1024 * 2) {
                this.$refs.uploadImg.uploadFiles.length = 0;
                this.$message({
                    message: '图片大小不能超过2M,请重新上传',
                    type: 'error'
                });
                return
            }
            this.dialogImageUrl = file.url;
            let formData = new FormData();
            formData.append('avatarfile', file.raw);
            formData.append('orderType', 1);
            request({
                url: '/iot/deviceOrder/profile/avatar',
                method: "post",
                data: formData
            }).then((res) => {
                console.log(res);
                if (res.code == 200) {
                    this.$message({
                        message: '上传成功',
                        type: 'success'
                    });
                    this.form.imgUrl = 'https://puyue.yhupai.com/prod-api' + res.imgUrl
                } else {
                    this.$message({
                        message: '上传失败',
                        type: 'error'
                    });
                }
            }).catch((res) => {
                this.$message({
                    message: '上传失败',
                    type: 'error'
                });
            })
        },
        handlePictureCardPreview(file) {
            this.dialogImageUrl = file.url;
            this.dialogVisible = true;
        },
        getErectoList() {
            let data = {
                pageNum: 1,
                pageSize: 10000,
                deptId: localStorage.getItem('deptId'),
                isAuthentication: 1,
            }
            request({
                url: '/system/user/list',
                method: "get",
                params: data
            }).then((res) => {
                console.log(res);
                if (res.code == 200) {
                    this.erectoList = res.rows
                    this.erectoList.unshift({
                        nickName: '未指派',
                        userId: -1
                    })
                } else {
                    this.erectoList = []
                }
            }).catch((res) => {
                this.erectoList = []
            })
        },
        getErectoListLevel() {
            this.erectoListLevel = []
            let data = {
                pageNum: 1,
                pageSize: 10000,
                deptId: localStorage.getItem('deptId'),
                // isAuthentication: 1,
                roleKey: 'tenanthelper',
            }
            request({
                url: '/system/user/list',
                method: "get",
                params: data
            }).then((res) => {
                console.log(res);
                if (res.code == 200 && res.rows.length > 0) {
                    this.erectoListLevel = res.rows
                    this.nextlevel = res.rows[0].userId
                } else {
                    this.erectoListLevel = []
                }
            }).catch((res) => {
                this.erectoListLevel = []
            })
        },
        // 获取设备列表
        getDeviceList() {
            let data = {
                status: 1
            }
            request({
                url: '/iot/device/shortList',
                method: "get",
                params: data
            }).then((res) => {
                if (res.code == 200) {
                    this.deviceList = res.rows
                } else {
                    this.deviceList = []
                }
            }).catch((res) => {
                this.deviceList = []
            })
        },
        // 获取安装列表
        getList() {
            this.tableData = []
            let data = {
                pageNum: this.pageIndex,
                pageSize: this.pageSize,
                state: this.state,
                orderType: 1,
            }
            if (this.roleKey == 'tenantservice') {
                data.createUserId = 0
                data.erectoId = localStorage.getItem('userID')
            }
            if (this.roleKey == 'admin') {
                data.createUserId = 0;
                data.erectoId = 0;
            }
            if (this.roleKey == 'tenant' || this.roleKey == 'tenanthelper') {
                data.createUserId = localStorage.getItem('userID');
                data.erectoId = 0;
            }
            if (this.level == 1) { //当选择下级时
                data.createUserId = this.nextlevel
            }
            request({
                url: '/iot/deviceOrder/list',
                method: "get",
                params: data
            }).then((res) => {
                if (res.code == 200) {
                    this.tableData = res.rows
                    this.total = res.total
                } else {
                    this.tableData = []
                    this.total = 0
                }
            }).catch((res) => {
                this.tableData = []
                this.total = 0
            })
        },
        handleSelectionChange(e) {
            console.log(1, e);
        },
        filterHandlerBody(e) {
            console.log(2, e);
        },
        filterHandlerStatus(e) {
            console.log(3, e);
        },
        changePage(e) {
            this.pageIndex = e
            this.getList()
        },
        openAZModal() {
            this.getDeviceList();
            this.form = {
                deviceId: undefined,
                address: '',//地址
                appointmentTime: '',//预约时间
                remark: '',//备注
                erectoId: -1,//安装工
                userName: '', //用户信息,联系人
                userPhone: '',//用户信息联系电话
                erectoName: '未指派',
                state: 0,
                erectoPhone: '',
            }
            this.title = '创建安装单'
            this.AZModal = true
        },
        submitForm() {
            this.$refs['form'].validate((valid) => {
                if (valid) {
                    this.add()
                } else {
                    console.log('error submit!!');
                    return false;
                }
            this.timeOutModal = false;
          } else {
            this.$message({
              message: "修改失败",
              type: "error",
            });
        },
        add() {
            console.log(this.erectoList);
            for (let i = 0; i < this.erectoList.length; i++) {
                if (this.form.erectoId == this.erectoList[i].userId) {
                    this.form.erectoName = this.erectoList[i].nickName
                    this.form.erectoPhone=this.erectoList[i].phonenumber
                }
            }
            console.log(this.form);
            let data = {
                deviceId: this.form.deviceId,
                erectoId: this.form.erectoId,
                erectoName: this.form.erectoName,
                userName: this.form.userName,
                userPhone: this.form.userPhone,
                address: this.form.address,
                appointmentTime: this.form.appointmentTime,
                remark: this.form.remark,
                state: this.form.state,
                erectoPhone:this.form.erectoPhone
            }
            if (this.form.receiveTime) {
                data.receiveTime = this.form.receiveTime
            }
            console.log(data);
            if (this.title == '修改安装单') {
                data.id = this.id,
                    data.orderType = '1'
                if (this.form.state == 3) {
                    if (!this.form.imgUrl) {
                        this.$message({
                            message: '请上传图片',
                            type: 'error'
                        });
                        return
                    }
                    data.imgUrl = this.form.imgUrl
                }
                console.log(data);
                request({
                    url: '/iot/deviceOrder',
                    method: "put",
                    data: data
                }).then((res) => {
                    console.log(res);
                    if (res.code == 200) {
                        this.state = -1
                        this.pageIndex = 1
                        this.getList()
                        this.AZModal = false
                        this.acceptModal = false
                    } else {
                        this.state = -1
                        this.pageIndex = 1
                        this.getList()
                        this.AZModal = false
                        this.acceptModal = false
                    }
                }).catch((res) => {
                    this.state = -1
                    this.pageIndex = 1
                    this.getList()
                    this.AZModal = false
                    this.acceptModal = false
                })
            } else {
                request({
                    url: '/iot/deviceOrder',
                    method: "post",
                    data: data
                }).then((res) => {
                    if (res.code == 200) {
                        this.state = -1
                        this.pageIndex = 1
                        this.getList()
                        this.AZModal = false
                    } else {
                        this.state = -1
                        this.pageIndex = 1
                        this.getList()
                        this.AZModal = false
                    }
                }).catch((res) => {
                    this.state = -1
                    this.pageIndex = 1
                    this.getList()
                    this.AZModal = false
                })
            }
        },
        editModal(item) {
            this.title = '修改安装单'
            this.form = item
            this.form = JSON.parse(JSON.stringify(item))
            this.deviceList = [{ deviceName: item.device.deviceName, deviceId: item.device.deviceId }]
            this.deviceList = [{ deviceName: item.device.deviceName, deviceId: item.device.deviceId }]
            console.log(this.form);
            this.view = false
            this.AZModal = true
            this.id = item.id
        },
        delModal(item) {
            this.id = item.id
            this.delDeviceId=item.deviceId
            this.deleteModal = true
        },
        delDate() {
            let that = this
            let data = {
                id: this.id,
                deviceId:this.delDeviceId
            }
            request({
                url: `/iot/deviceOrder/${that.id}/${that.delDeviceId}`,
                method: "DELETE",
                // data: data
            }).then((res) => {
                if (res.code == 200) {
                    that.pageIndex = 1
                    that.getList()
                    that.deleteModal = false
                } else {
                    that.pageIndex = 1
                    that.getList()
                    that.deleteModal = false
                }
            }).catch((res) => {
                that.pageIndex = 1
                that.getList()
                that.deleteModal = false
            })
        },
        // 接单
        JDModal(item) {
            if (!item.appointmentTime) {
                this.$message({
                    message: '请和客户确认预约时间并录入系统再接单!',
                    type: 'error'
                });
                return false
            }
            this.title = '修改安装单'
            this.form = JSON.parse(JSON.stringify(item))
            this.form.state = 2
            this.deviceList = [{ deviceName: item.device.deviceName, deviceId: item.device.deviceId }]
            this.id = item.id
            this.form.receiveTime = this.formatNow()
            this.view = false
            this.acceptModal = true
        },
        formatNow() {
            let now = new Date();
            let year = now.getFullYear();
            let month = (now.getMonth() + 1).toString().padStart(2, '0');  // 注意:月份是从 0 开始的,所以需要 +1
            let day = now.getDate().toString().padStart(2, '0');
            let hour = now.getHours().toString().padStart(2, '0');
            let minute = now.getMinutes().toString().padStart(2, '0');
            let second = now.getSeconds().toString().padStart(2, '0');
            let millisecond = now.getMilliseconds().toString().padStart(3, '0');
            return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
        },
        // 结单
        jdModal(item) {
            this.title = '修改安装单'
            this.form = JSON.parse(JSON.stringify(item))
            this.form.state = 3
            this.deviceList = [{ deviceName: item.device.deviceName, deviceId: item.device.deviceId }]
            this.id = item.id
            this.view = false
            // this.form.receiveTime = this.formatNow()
            this.AZModal = true
        },
        // 结单查看
        viewModal(item) {
            this.title = '查看安装单'
            this.form = JSON.parse(JSON.stringify(item))
            this.form.erectoId = this.form.erectoName
            this.deviceList = [{ deviceName: item.device.deviceName, deviceId: item.device.deviceId }]
            console.log(this.erectoList);
            this.id = item.id
            this.view = true
            console.log(this.form);
            // this.form.receiveTime = this.formatNow()
            this.AZModal = true
        },
          }
        })
        .catch((res) => {
          this.$message({
            message: "修改失败",
            type: "error",
          });
        });
    },
    watch: {
        'form.erectoId': {
            handler(newVal, oldVal) {
                if (this.form.state < 2) {
                    if (newVal && newVal == -1) {
                        this.form.state = 0
                    } else {
                        this.form.state = 1
                    }
                }
            },
            deep: true,
        },
    }
}
    getTimeOut() {
      let data = {
        orderType: 1,
        userId: localStorage.getItem("userID"),
      };
      request({
        url: `/iot/deviceOrder/selecttimeout`,
        method: "get",
        params: data,
      })
        .then((res) => {
          console.log(res);
          if (res.code == 200) {
            this.timeForm.ReceiveTimeout = res.data.receiveTimeout;
            this.timeForm.FinishTimeout = res.data.finishTimeout;
          } else {
            this.timeForm.ReceiveTimeout = 0;
            this.timeForm.FinishTimeout = 0;
          }
        })
        .catch((res) => {
          this.timeForm.ReceiveTimeout = 0;
          this.timeForm.FinishTimeout = 0;
          return false;
        });
    },
    openTimeOutModal() {
      this.getTimeOut();
      this.timeOutModal = true;
    },
    exceed(e) {
      console.log(e);
      this.$message({
        message: "图片最多上传一张",
        type: "error",
      });
    },
    handleRemove(file, fileList) {
      this.form.imgUrl = "";
      console.log(file, fileList);
    },
    handleChange(file) {
      if (file.size > 1024 * 1024 * 2) {
        this.$refs.uploadImg.uploadFiles.length = 0;
        this.$message({
          message: "图片大小不能超过2M,请重新上传",
          type: "error",
        });
        return;
      }
      this.dialogImageUrl = file.url;
      let formData = new FormData();
      formData.append("avatarfile", file.raw);
      formData.append("orderType", 1);
      request({
        url: "/iot/deviceOrder/Install/profile/avatar",
        method: "post",
        data: formData,
      })
        .then((res) => {
          console.log(res);
          if (res.code == 200) {
            this.$message({
              message: "上传成功",
              type: "success",
            });
            this.form.imgUrl = "https://puyue.yhupai.com/prod-api" + res.imgUrl;
          } else {
            this.$message({
              message: "上传失败",
              type: "error",
            });
          }
        })
        .catch((res) => {
          this.$message({
            message: "上传失败",
            type: "error",
          });
        });
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    getErectoList() {
      let data = {
        pageNum: 1,
        pageSize: 10000,
        deptId: localStorage.getItem("deptId"),
        isAuthentication: 1,
      };
      request({
        url: "/system/user/list",
        method: "get",
        params: data,
      })
        .then((res) => {
          console.log(res);
          if (res.code == 200) {
            this.erectoList = res.rows;
            this.erectoList.unshift({
              nickName: "未指派",
              userId: -1,
            });
          } else {
            this.erectoList = [];
          }
        })
        .catch((res) => {
          this.erectoList = [];
        });
    },
    getErectoListLevel() {
      this.erectoListLevel = [];
      let data = {
        pageNum: 1,
        pageSize: 10000,
        deptId: localStorage.getItem("deptId"),
        // isAuthentication: 1,
        roleKey: "tenanthelper",
      };
      request({
        url: "/system/user/list",
        method: "get",
        params: data,
      })
        .then((res) => {
          console.log(res);
          if (res.code == 200 && res.rows.length > 0) {
            this.erectoListLevel = res.rows;
            this.nextlevel = res.rows[0].userId;
          } else {
            this.erectoListLevel = [];
          }
        })
        .catch((res) => {
          this.erectoListLevel = [];
        });
    },
    // 获取设备列表
    getDeviceList() {
      let data = {
        status: 1,
      };
      request({
        url: "/iot/device/shortList",
        method: "get",
        params: data,
      })
        .then((res) => {
          if (res.code == 200) {
            this.deviceList = res.rows;
          } else {
            this.deviceList = [];
          }
        })
        .catch((res) => {
          this.deviceList = [];
        });
    },
    // 获取安装列表
    getList() {
      this.tableData = [];
      let data = {
        pageNum: this.pageIndex,
        pageSize: this.pageSize,
        state: this.state,
        orderType: 1,
      };
      if (this.timeOutSelect == 0) {
      } else if (this.timeOutSelect == 1) {
        data.receiveTimeoutFlag = 1;
      } else if (this.timeOutSelect == 2) {
        data.finishTimeoutFlag = 1;
      }
      if (this.roleKey == "tenantservice") {
        data.createUserId = 0;
        data.erectoId = localStorage.getItem("userID");
      }
      if (this.roleKey == "admin") {
        data.createUserId = 0;
        data.erectoId = 0;
      }
      if (this.roleKey == "tenant" || this.roleKey == "tenanthelper") {
        data.createUserId = localStorage.getItem("userID");
        data.erectoId = 0;
      }
      if (this.level == 1) {
        //当选择下级时
        data.createUserId = this.nextlevel;
      }
      console.log(data);
      request({
        url: "/iot/deviceOrder/list",
        method: "get",
        params: data,
      })
        .then((res) => {
          if (res.code == 200) {
            this.tableData = res.rows;
            this.total = res.total;
          } else {
            this.tableData = [];
            this.total = 0;
          }
        })
        .catch((res) => {
          this.tableData = [];
          this.total = 0;
        });
    },
    handleSelectionChange(e) {
      console.log(1, e);
    },
    filterHandlerBody(e) {
      console.log(2, e);
    },
    filterHandlerStatus(e) {
      console.log(3, e);
    },
    changePage(e) {
      this.pageIndex = e;
      this.getList();
    },
    openAZModal() {
      this.getDeviceList();
      this.form = {
        deviceId: undefined,
        address: "", //地址
        appointmentTime: "", //预约时间
        remark: "", //备注
        erectoId: -1, //安装工
        userName: "", //用户信息,联系人
        userPhone: "", //用户信息联系电话
        erectoName: "未指派",
        state: 0,
        erectoPhone: "",
      };
      this.title = "创建安装单";
      this.AZModal = true;
    },
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          this.add();
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    add() {
      console.log(this.erectoList);
      for (let i = 0; i < this.erectoList.length; i++) {
        if (this.form.erectoId == this.erectoList[i].userId) {
          this.form.erectoName = this.erectoList[i].nickName;
          this.form.erectoPhone = this.erectoList[i].phonenumber;
        }
      }
      console.log(this.form);
      let data = {
        deviceId: this.form.deviceId,
        erectoId: this.form.erectoId,
        erectoName: this.form.erectoName,
        userName: this.form.userName,
        userPhone: this.form.userPhone,
        address: this.form.address,
        appointmentTime: this.form.appointmentTime,
        remark: this.form.remark,
        state: this.form.state,
        erectoPhone: this.form.erectoPhone,
      };
      if (this.form.receiveTime) {
        data.receiveTime = this.form.receiveTime;
      }
      console.log(data);
      if (this.title == "修改安装单") {
        (data.id = this.id), (data.orderType = "1");
        if (this.form.state == 3) {
          if (!this.form.imgUrl) {
            this.$message({
              message: "请上传图片",
              type: "error",
            });
            return;
          }
          data.imgUrl = this.form.imgUrl;
        }
        console.log(data);
        request({
          url: "/iot/deviceOrder",
          method: "put",
          data: data,
        })
          .then((res) => {
            console.log(res);
            if (res.code == 200) {
              this.state = -1;
              this.pageIndex = 1;
              this.getList();
              this.AZModal = false;
              this.acceptModal = false;
            } else {
              this.state = -1;
              this.pageIndex = 1;
              this.getList();
              this.AZModal = false;
              this.acceptModal = false;
            }
          })
          .catch((res) => {
            this.state = -1;
            this.pageIndex = 1;
            this.getList();
            this.AZModal = false;
            this.acceptModal = false;
          });
      } else {
        request({
          url: "/iot/deviceOrder",
          method: "post",
          data: data,
        })
          .then((res) => {
            if (res.code == 200) {
              this.state = -1;
              this.pageIndex = 1;
              this.getList();
              this.AZModal = false;
            } else {
              this.state = -1;
              this.pageIndex = 1;
              this.getList();
              this.AZModal = false;
            }
          })
          .catch((res) => {
            this.state = -1;
            this.pageIndex = 1;
            this.getList();
            this.AZModal = false;
          });
      }
    },
    editModal(item) {
      this.title = "修改安装单";
      this.form = item;
      this.form = JSON.parse(JSON.stringify(item));
      this.deviceList = [
        { deviceName: item.device.deviceName, deviceId: item.device.deviceId },
      ];
      this.deviceList = [
        { deviceName: item.device.deviceName, deviceId: item.device.deviceId },
      ];
      console.log(this.form);
      this.view = false;
      this.AZModal = true;
      this.id = item.id;
    },
    delModal(item) {
      this.id = item.id;
      this.delDeviceId = item.deviceId;
      this.deleteModal = true;
    },
    delDate() {
      let that = this;
      let data = {
        id: this.id,
        deviceId: this.delDeviceId,
      };
      request({
        url: `/iot/deviceOrder/${that.id}/${that.delDeviceId}`,
        method: "DELETE",
        // data: data
      })
        .then((res) => {
          if (res.code == 200) {
            that.pageIndex = 1;
            that.getList();
            that.deleteModal = false;
          } else {
            that.pageIndex = 1;
            that.getList();
            that.deleteModal = false;
          }
        })
        .catch((res) => {
          that.pageIndex = 1;
          that.getList();
          that.deleteModal = false;
        });
    },
    // 接单
    JDModal(item) {
      if (!item.appointmentTime) {
        this.$message({
          message: "请和客户确认预约时间并录入系统再接单!",
          type: "error",
        });
        return false;
      }
      this.title = "修改安装单";
      this.form = JSON.parse(JSON.stringify(item));
      this.form.state = 2;
      this.deviceList = [
        { deviceName: item.device.deviceName, deviceId: item.device.deviceId },
      ];
      this.id = item.id;
      this.form.receiveTime = this.formatNow();
      this.view = false;
      this.acceptModal = true;
    },
    formatNow() {
      let now = new Date();
      let year = now.getFullYear();
      let month = (now.getMonth() + 1).toString().padStart(2, "0"); // 注意:月份是从 0 开始的,所以需要 +1
      let day = now.getDate().toString().padStart(2, "0");
      let hour = now.getHours().toString().padStart(2, "0");
      let minute = now.getMinutes().toString().padStart(2, "0");
      let second = now.getSeconds().toString().padStart(2, "0");
      let millisecond = now.getMilliseconds().toString().padStart(3, "0");
      return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
    },
    // 结单
    jdModal(item) {
      this.title = "修改安装单";
      this.form = JSON.parse(JSON.stringify(item));
      this.form.state = 3;
      this.deviceList = [
        { deviceName: item.device.deviceName, deviceId: item.device.deviceId },
      ];
      this.id = item.id;
      this.view = false;
      // this.form.receiveTime = this.formatNow()
      this.AZModal = true;
    },
    // 结单查看
    viewModal(item) {
      this.title = "查看安装单";
      this.form = JSON.parse(JSON.stringify(item));
      this.form.erectoId = this.form.erectoName;
      this.deviceList = [
        { deviceName: item.device.deviceName, deviceId: item.device.deviceId },
      ];
      console.log(this.erectoList);
      this.id = item.id;
      this.view = true;
      console.log(this.form);
      // this.form.receiveTime = this.formatNow()
      this.AZModal = true;
    },
  },
  watch: {
    "form.erectoId": {
      handler(newVal, oldVal) {
        if (this.form.state < 2) {
          if (newVal && newVal == -1) {
            this.form.state = 0;
          } else {
            this.form.state = 1;
          }
        }
      },
      deep: true,
    },
  },
};
</script>
<style lang="scss" scoped>
.title {
    display: flex;
  display: flex;
}
.el-select .el-input {
    width: 130px;
  width: 130px;
}
.input-with-select .el-input-group__prepend {
    background-color: #fff;
  background-color: #fff;
}
.azmodal {
    max-height: 600px;
    overflow-y: auto !important;
  max-height: 600px;
  overflow-y: auto !important;
}
</style>