马宇豪
2024-08-16 3b75798cc41993f9016610296907d2338545a345
src/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue
@@ -55,26 +55,6 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="作业人" prop="operatorUids">
            <el-select v-model="form.operatorUids" filterable multiple clearable>
              <el-option
                  v-for="item in lists.spList.opList"
                  :key="item.uid"
                  :label="item.realName"
                  :value="item.uid"
              />
            </el-select>
<!--            <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>-->
          </el-form-item>
        </el-col>
      </el-row>
         <el-row>
        <el-col :span="12">
          <el-form-item label="作业单位" prop="workDepId">
            <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="作业负责人" prop="headUids">
            <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" clearable>
              <el-option
@@ -84,7 +64,27 @@
                  :value="item.uid"
              />
            </el-select>
<!--            <el-cascader style="width: 100%" v-model="form.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
            <!--            <el-cascader style="width: 100%" v-model="form.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
          </el-form-item>
        </el-col>
      </el-row>
         <el-row>
        <el-col :span="12">
          <el-form-item label="作业单位" prop="workDepIds">
            <el-cascader style="width: 100%" v-model="form.workDepIds" :props="depProps" @change="getWorkerList" :options="lists.departList" :show-all-levels="false"/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="作业人" prop="operatorUids">
            <el-select v-model="form.operatorUids" filterable multiple clearable>
              <el-option
                  v-for="item in zyList"
                  :key="item.uid"
                  :label="item.realName"
                  :value="item.uid"
              />
            </el-select>
            <!--            <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>-->
          </el-form-item>
        </el-col>
         </el-row>
@@ -189,8 +189,8 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="安全措施确认人" filterable prop="safetyMeasureUids">
              <el-select v-model="form.safetyMeasureUids" multiple clearable>
            <el-form-item label="安全措施确认人" prop="safetyMeasureUids">
              <el-select v-model="form.safetyMeasureUids" multiple filterable clearable>
                <el-option
                    v-for="item in lists.workerList"
                    :key="item.uid"
@@ -216,9 +216,9 @@
                </el-form-item>
              </template>
            </el-table-column>
            <el-table-column prop="approvalUids" filterable label="审批人" align="center">
            <el-table-column prop="approvalUids" label="审批人" align="center">
              <template #default="scope">
                <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
                <el-select v-model="scope.row.approvalUids" multiple filterable :disabled="isFirstRow(scope.$index)" clearable>
                  <el-option
                      v-for="item in lists.workerList"
                      :key="item.uid"
@@ -232,8 +232,8 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="完工验收" prop="acceptUid">
              <el-select v-model="form.acceptUid" clearable>
            <el-form-item label="完工验收" prop="acceptUids">
              <el-select v-model="form.acceptUids" clearable filterable multiple>
                <el-option
                    v-for="item in lists.workerList"
                    :key="item.uid"
@@ -245,8 +245,8 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="现场开始结束确认人" filterable prop="startOrEndUids">
              <el-select v-model="form.startOrEndUids" multiple clearable>
            <el-form-item label="现场开始结束确认人" prop="startOrEndUids">
              <el-select v-model="form.startOrEndUids" multiple clearable filterable>
                <el-option
                    v-for="item in lists.workerList"
                    :key="item.uid"
@@ -258,21 +258,20 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="最终审批人" prop="lastApprover">
              <el-select v-model="form.lastApprover" clearable>
                <el-option
                    v-for="item in lists.workerList"
                    :key="item.uid"
                    :label="item.username"
                    :value="item.uid"
                />
              </el-select>
<!--              <el-cascader style="width: 100%" v-model="form.lastApprover" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
            </el-form-item>
          </el-col>
        </el-row>
<!--        <el-row>-->
<!--          <el-col :span="12">-->
<!--            <el-form-item label="最终审批人" prop="lastApprover">-->
<!--              <el-select v-model="form.lastApprover" clearable>-->
<!--                <el-option-->
<!--                    v-for="item in lists.workerList"-->
<!--                    :key="item.uid"-->
<!--                    :label="item.username"-->
<!--                    :value="item.uid"-->
<!--                />-->
<!--              </el-select>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
<!--        </el-row>-->
         </div>
      </el-form>
      <div class="applyBtn">
@@ -303,6 +302,7 @@
    props1:{},
    depProps:{},
    safetyMeasureBasicList: []
    zyList: []
    tabLoading: boolean
   }
   export default defineComponent({
@@ -317,6 +317,7 @@
        showDialog: false,
            equipmentDialog: false,
        safetyMeasureBasicList: [],
        zyList: [],
            form: {
          id: null,
          workType: 6,
@@ -328,14 +329,14 @@
          operatorUids: [],
          headUids: [],
          guardianUids: [],
          workDepId: null,
          workDepIds: [],
          workContent: '',
          workLocation: '',
          riskIdentification: [],
          involveOtherWork: [],
          safetyMeasureUids: [],
          approvalDepBasicList: [],
          acceptUid: null,
          acceptUids: [],
          lastApprover: null,
          startOrEndUids: [],
          cameraIds: [],
@@ -372,6 +373,7 @@
          expandTrigger: 'hover',
          label: 'depName',
          value: 'depId',
          multiple: true,
          checkStrictly: true,
          emitPath: false
        }
@@ -383,7 +385,7 @@
        workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        workDepIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -391,7 +393,7 @@
        expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        acceptUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            "workDetail.hight": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
@@ -399,16 +401,26 @@
      const workSelectRef = ref()
         // 页面载入时执行方法
         onMounted(() => {
        getBasicData()
        // getBasicData()
      });
      const openWorkSelect = ()=>{
        workSelectRef.value.openDialog(state.form.involveOtherWork)
      }
      const getWorkerList = ()=>{
        const filteredList = props.lists.spList.opList.filter(i => state.form.workDepIds.includes(i.depId));
        if(filteredList && filteredList.length>0){
          state.zyList = filteredList
        }else{
          state.zyList = props.lists.spList.opList
        }
      }
      const getSelected = ()=>{
        state.form.involveOtherWork = workSelectRef.value.selected
      }
      const openDialog = (row)=>{
        clearFile()
        state.zyList = props.lists.spList.opList
        getBasicData()
        Object.keys(state.form).forEach(key => {
          if (row.hasOwnProperty(key)) {
            state.form[key] = JSON.parse(JSON.stringify(row))[key];
@@ -428,9 +440,15 @@
          approvalUids: item.approvalPersonList.filter(j=>j.type == 5).map(i=>i.userId),
          approvalType: item.approvalType
        }))
        state.form.acceptUid = row.acceptUser.userId
        state.form.acceptUids = row.acceptUserList.map(i=>i.userId)
        state.form.startOrEndUids = row.startOrEndList.map(i=>i.userId)
        state.form.lastApprover = row.lastApprover.userId
        // state.form.lastApprover = row.lastApprover.userId
        if(row.workDepList && row.workDepList.length>0){
          state.form.workDepIds = row.workDepList.map(i=>i.workDepId)
        }else{
          state.form.workDepIds.push(row.workDepId)
        }
        getWorkerList()
        state.showDialog = true
      }
@@ -446,14 +464,14 @@
          operatorUids: [],
          headUids: [],
          guardianUids: [],
          workDepId: null,
          workDepIds: [],
          workContent: '',
          workLocation: '',
          riskIdentification: [],
          involveOtherWork: [],
          safetyMeasureUids: [],
          approvalDepBasicList: [],
          acceptUid: null,
          acceptUids: [],
          lastApprover: null,
          startOrEndUids: [],
          cameraIds: [],
@@ -496,16 +514,16 @@
        const res = await workApplyApi().getFormData(6)
        if (res.data.code === '200') {
          state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
          if(res.data.data.approvalDepBasicList && res.data.data.approvalDepBasicList.length>0){
            state.form.approvalDepBasicList = res.data.data.approvalDepBasicList.map(({id,content})=>({
              content,
              approvalDepBasicId: id,
              approvalUids: [],
              approvalType: null
            }))
          }else{
            state.form.approvalDepBasicList = []
          }
          // if(res.data.data.approvalDepBasicList && res.data.data.approvalDepBasicList.length>0){
          //   state.form.approvalDepBasicList = res.data.data.approvalDepBasicList.map(({id,content})=>({
          //     content,
          //     approvalDepBasicId: id,
          //     approvalUids: [],
          //     approvalType: null
          //   }))
          // }else{
          //   state.form.approvalDepBasicList = []
          // }
        } else {
          ElMessage({
            type: 'warning',
@@ -586,7 +604,7 @@
            data.guardianUids = transform2Arr(data.guardianUids)
            data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
            data.startOrEndUids = transform2Arr(data.startOrEndUids)
            data.acceptUid = transform2Obj(data.acceptUid)
            data.acceptUids = transform2Arr(data.acceptUids)
            data.lastApprover = transform2Obj(data.lastApprover)
            const res = await workApplyApi().modHeightApply(data)
            if (res.data.code === '200') {
@@ -657,6 +675,7 @@
         return {
            renderMenu,
        getBasicData,
        getWorkerList,
        getStartEndIds,
        getSafetyIds,
        isFirstRow,