马宇豪
2023-08-16 a8ef7c1a4b2ab6acd91a0520e6258bd753d17f20
src/views/specialWorkSystem/workTicket/zysq/components/broken.vue
@@ -61,6 +61,18 @@
                  />
               </el-form-item>
            </el-col>
        <el-col :span="12">
          <el-form-item label="关联视频设备" prop="cameraIds">
            <el-select v-model="form.cameraIds" multiple>
              <el-option
                  v-for="item in deviceList"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
              />
            </el-select>
          </el-form-item>
        </el-col>
         </el-row>
            <el-divider border-style="dashed"/>
         <el-row>
@@ -108,7 +120,7 @@
         <el-row>
            <el-col :span="24">
               <el-form-item label="图片上传" prop="workDetail.bcPath">
                  <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
                  <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :before-remove="beforeRemove" :before-upload="getUploadUrl">
                     <el-icon><Plus /></el-icon>
                     <template #tip>
                        <div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传3张</div>
@@ -138,7 +150,7 @@
</template>
<script lang="ts">
   import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue';
   import { storeToRefs } from 'pinia';
   import { initBackEndControlRoutes } from '/@/router/backEnd';
   import {useUserInfo} from "/@/stores/userInfo";
@@ -169,19 +181,20 @@
      components: {
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
      props:['workerList','departList'],
      setup() {
      props:['workerList','departList','deviceList'],
      setup(props: any, context: any) {
         const userInfo = useUserInfo()
         const { userInfos } = storeToRefs(userInfo);
         const state  = reactive<stateType>({
            form: {
               operatorUids: [],
               workType: 5,
               workLevel: null,
               workLevel: 0,
               workContent: '',
               workLocation: '',
               hazardIdentification: '',
          maId: null,
          cameraIds: [],
          maBaseId: null,
               workDetail:{
                  operationDepId: null,
                  bcReason: '',
@@ -189,7 +202,7 @@
                  bcPath: [],
                  involvedDepIds: []
               },
               wmAddReqDTOList: [],
          receiveUids: [],
               workTimeLine: [],
               expStartTime: '',
               expEndTime: ''
@@ -230,7 +243,8 @@
               emitPath: false,
               value: 'depId',
               label: 'depName',
               multiple: true
               multiple: true,
          expandTrigger: 'hover'
            },
            casProps2: {
               emitPath: false,
@@ -249,6 +263,7 @@
            workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
        cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
            "workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -264,22 +279,24 @@
         // }
      const openMaList = ()=>{
        material.value.equipmentDialog = true
        material.value.getMaList(state.form.workType,state.form.workLevel)
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
        if(state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业人再获取相应物资配置'
          });
        }else{
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      }
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
         const submitForm = async (formEl: FormInstance | undefined) => {
@@ -313,8 +330,8 @@
                        message: res.data.msg
                     });
                  }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
               } else {
                  console.log('error submit!', fields)
               }