| | |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form :model="state.noticeForm" size="default" ref="noticeRef" |
| | | :rules="title === '新增' || title === '编辑' ? state.formRules : {}" label-width="110px"> |
| | | :rules="title === '新增' || title === '编辑' ? state.formRules : {}" label-width="140px"> |
| | | <el-form-item v-if="state.isAdmin" label="单位:" prop="companyId"> |
| | | <el-select v-model="state.noticeForm.companyId" placeholder="请选择" clearable filterable style="width: 100%" |
| | | :disabled="title == '查看' || title == '编辑' || !state.isAdmin"> |
| | |
| | | <el-form-item label="行业:" prop="industry"> |
| | | <el-input v-model.trim="state.noticeForm.industry" :disabled="title === '查看'"/> |
| | | </el-form-item> |
| | | <el-form-item label="证书编号:" prop="legalPersonCode"> |
| | | <el-form-item label="社会信用代码:" prop="legalPersonCode"> |
| | | <el-input v-model.trim="state.noticeForm.legalPersonCode" :disabled="title === '查看'"/> |
| | | </el-form-item> |
| | | <el-form-item label="法人代表:" prop="legalPerson"> |
| | |
| | | <el-input v-model.trim="state.noticeForm.otherAddress" :rows="3" type="textarea" |
| | | :disabled="title === '查看'"/> |
| | | </el-form-item> |
| | | <el-form-item label="单位概况:" v-if="showEditor" required> |
| | | <el-form-item label="单位概况简介:" v-if="showEditor" required> |
| | | <t-editor style="width: 800px" ref="myEditor" :toolbar="toolbar" |
| | | :value="state.noticeForm.companySummary"></t-editor> |
| | | </el-form-item> |
| | | <el-form-item label="单位概况:" v-else> |
| | | <el-form-item label="单位概况简介:" v-else> |
| | | <div class="ql-container ql-snow" style="height: 500px;width: 100%;margin-top: 10px;"> |
| | | <div class="ql-editor"> |
| | | <div class="reviewTable" v-html="state.noticeForm.companySummary" @click="showFile($event)"></div> |
| | |
| | | <el-form-item label="证书编号:" prop="certificateNum" > |
| | | <el-input v-model="state.form.certificateNum" :disabled="title === '查看'" placeholder="请输入证书编号"/> |
| | | </el-form-item> |
| | | <el-form-item label="获取时间:" prop="getTime" > |
| | | <el-form-item label="获得时间:" prop="getTime" > |
| | | <el-date-picker |
| | | :disabled="state.title =='查看'" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.getTime" |
| | | type="date" |
| | | placeholder="请选择获取日期" |
| | | placeholder="请选择获得日期" |
| | | style="width: 100%" |
| | | value-format="YYYY-MM-DD" |
| | | /> |
| | |
| | | } |
| | | const getTime = state.form.getTime; |
| | | if (!getTime) { |
| | | return callback(new Error('请先选择获取时间')); |
| | | return callback(new Error('请先选择获得时间')); |
| | | } |
| | | const effectiveDate = new Date(value); |
| | | const achieveDate = new Date(getTime); |
| | | if (effectiveDate <= achieveDate) { |
| | | callback(new Error('有效期必须在获取时间之后')); |
| | | callback(new Error('有效期必须在获得时间之后')); |
| | | } else { |
| | | callback(); |
| | | } |
| | |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | certificateName:[{ required: true, message: '请输入取得资质证书名称', trigger: 'blur' }], |
| | | certificateNum:[{ required: true, message: '请输入证书编号', trigger: 'blur' }], |
| | | getTime:[{ required: true, message: '请输入获取时间', trigger: 'blur' }], |
| | | getTime:[{ required: true, message: '请输入获得时间', trigger: 'blur' }], |
| | | effectiveTime:[{ required: true, validator: checkEffectiveTime, trigger: 'blur' }], |
| | | filePath:[{ required: true, message: '请上传证书', trigger: 'blur' }], |
| | | }, |
| | |
| | | :before-close="handleClose" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | draggable |
| | | > |
| | | <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px"> |
| | | <el-form-item label="单位:" prop="companyId" v-if="state.isAdmin"> |
| | |
| | | <!-- </el-table-column>--> |
| | | <el-table-column v-for="column in deptList" :key="column.deptId" :prop="column.deptId" :label="column.deptName" align="center"> |
| | | <template #default="scope"> |
| | | <el-checkbox v-if="isEdit" v-model="scope.row[column.deptId]" size="large" @change="changeStatus(scope.row,scope.$index)"/> |
| | | <div v-else> |
| | | <!-- <el-checkbox v-if="isEdit" v-model="scope.row[column.deptId]" size="large" @change="changeStatus(scope.row,scope.$index)"/>--> |
| | | <div> |
| | | <el-checkbox v-if="column.deptType == '0'" v-model="scope.row[column.deptId]" disabled size="large"/> |
| | | <div class="markBox" v-else> |
| | | <div class="triangle" v-show="scope.row[column.deptId]"></div> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="年份:" prop="year"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="state.form.year" |
| | | type="year" |
| | | value-format="YYYY" |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="实施调查的部门:" prop="deptId" > |
| | | <el-select v-model="state.form.deptId" placeholder="请选择" :disabled="title === '查看'" clearable> |
| | | <el-select v-model="state.form.deptId" style="width: 100%" placeholder="请选择" :disabled="title === '查看'" clearable> |
| | | <el-option |
| | | v-for="item in state.deptList" |
| | | :key="item.deptId" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="调查结束日期:" prop="endTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.endTime" |
| | | type="date" |
| | |
| | | </el-row> |
| | | <el-row :gutter="24" style="margin-top: 15px"> |
| | | <el-col :span="24" > |
| | | <span style="font-size: 14px;font-weight: 700;" >用户反馈的主要意见和建议:</span> |
| | | <el-input style="margin-top: 5px" :disabled="title === '查看'" v-model="state.form.suggest" type="textarea" :rows="4"></el-input> |
| | | <span style="margin-left:8px;font-size: 15px;font-weight: 700;" >用户反馈的主要意见和建议:</span> |
| | | <el-input style="margin-left:8px;margin-top: 5px" :disabled="title === '查看'" v-model="state.form.suggest" type="textarea" :rows="4"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24" style="margin-top: 15px"> |
| | |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | :title="title" |
| | | width="850px" |
| | | width="1100px" |
| | | :before-close="handleClose" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" > |
| | | <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150" label-position="right"> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="单位名称:" prop="companyId" v-if="state.isAdmin"> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="提供单位:" prop="offerUnit" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.offerUnit" placeholder="提供单位"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="型号:" prop="model" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.model" placeholder="型号"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="提供方式:" prop="offerMethod" > |
| | | <el-checkbox-group v-model="state.form.offerMethod" style="display: flex" :disabled="title === '查看'"> |
| | | <el-checkbox label="1" value="1" style="width: 25px;" >信函</el-checkbox> |
| | | <el-checkbox label="2" value="2" style="width: 25px;">电话</el-checkbox> |
| | | <el-checkbox label="3" value="3" style="width: 20px;">走访</el-checkbox> |
| | | </el-checkbox-group> |
| | | <el-checkbox-group v-model="state.form.offerMethod" style="display: flex" :disabled="title === '查看'"> |
| | | <el-checkbox label="1" value="1" style="width: 25px;" >信函</el-checkbox> |
| | | <el-checkbox label="2" value="2" style="width: 25px;">电话</el-checkbox> |
| | | <el-checkbox label="3" value="3" style="width: 20px;">走访</el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="提供日期:" prop="offerTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.offerTime" |
| | | type="date" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="generalTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.generalTime" |
| | | type="date" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="productTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.productTime" |
| | | type="date" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="disposeTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.disposeTime" |
| | | type="date" |
| | |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | feedFrom: [{ required: true, message: '请输入反馈单名称', trigger: 'blur' }], |
| | | number: [{ required: true, message: '请输入编号', trigger: 'blur' }], |
| | | productName: [{ required: true, message: '请输入产品名称', trigger: 'blur' }], |
| | | makeNum: [{ required: true, message: '请输入制造号', trigger: 'blur' }], |
| | | offerUnit: [{ required: true, message: '请输入提供单位', trigger: 'blur' }], |
| | | offerTime: [{ required: true, message: '请输入提供日期', trigger: 'blur' }], |
| | | offerMethod: [{ required: true, message: '请输入提供方式', trigger: 'blur' }], |
| | | model: [{ required: true, message: '请输入型号', trigger: 'blur' }], |
| | | comNum: [{ required: true, message: '请输入公司编号', trigger: 'blur' }], |
| | | feedInformation: [{ required: true, message: '请输入反馈信息描述', trigger: 'blur' }], |
| | | dutyMess: [{ required: true, message: '请输入责任单位意见', trigger: 'blur' }], |
| | | generalSign: [{ required: true, message: '请输入综合办公室签名', trigger: 'blur' }], |
| | | generalTime: [{ required: true, message: '请选择签名日期', trigger: 'blur' }], |
| | | planMess: [{ required: true, message: '请输入计划意见', trigger: 'blur' }], |
| | | productSign: [{ required: true, message: '请输入生产技术部签名', trigger: 'blur' }], |
| | | productTime: [{ required: true, message: '请选择生产技术部签名日期', trigger: 'blur' }], |
| | | disposeMess:[{ required: true, message: '请输入处置结果', trigger: 'blur' }], |
| | | disposeSign: [{ required: true, message: '请输入处置人签名', trigger: 'blur' }], |
| | | disposeTime: [{ required: true, message: '请选择处置人签名日期', trigger: 'blur' }] |
| | | // number: [{ required: true, message: '请输入编号', trigger: 'blur' }], |
| | | // productName: [{ required: true, message: '请输入产品名称', trigger: 'blur' }], |
| | | // makeNum: [{ required: true, message: '请输入制造号', trigger: 'blur' }], |
| | | // offerUnit: [{ required: true, message: '请输入提供单位', trigger: 'blur' }], |
| | | // offerTime: [{ required: true, message: '请输入提供日期', trigger: 'blur' }], |
| | | // offerMethod: [{ required: true, message: '请输入提供方式', trigger: 'blur' }], |
| | | // model: [{ required: true, message: '请输入型号', trigger: 'blur' }], |
| | | // comNum: [{ required: true, message: '请输入公司编号', trigger: 'blur' }], |
| | | // feedInformation: [{ required: true, message: '请输入反馈信息描述', trigger: 'blur' }], |
| | | // dutyMess: [{ required: true, message: '请输入责任单位意见', trigger: 'blur' }], |
| | | // generalSign: [{ required: true, message: '请输入综合办公室签名', trigger: 'blur' }], |
| | | // generalTime: [{ required: true, message: '请选择签名日期', trigger: 'blur' }], |
| | | // planMess: [{ required: true, message: '请输入计划意见', trigger: 'blur' }], |
| | | // productSign: [{ required: true, message: '请输入生产技术部签名', trigger: 'blur' }], |
| | | // productTime: [{ required: true, message: '请选择生产技术部签名日期', trigger: 'blur' }], |
| | | // disposeMess:[{ required: true, message: '请输入处置结果', trigger: 'blur' }], |
| | | // disposeSign: [{ required: true, message: '请输入处置人签名', trigger: 'blur' }], |
| | | // disposeTime: [{ required: true, message: '请选择处置人签名日期', trigger: 'blur' }] |
| | | |
| | | }, |
| | | companyList: [], |
| | |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | :title="title" |
| | | width="850px" |
| | | width="1100px" |
| | | :before-close="handleClose" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="反馈单名称:" prop="feedForm" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.feedForm" placeholder="反馈单名称"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="编号:" prop="number" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.number" placeholder="编号"></el-input> |
| | | </el-form-item> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="责任单位:" prop="dutyUnitId" > |
| | | <el-select |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.dutyUnitId" |
| | | placeholder="请选择部门" |
| | | style="width: 240px;margin-bottom: 5px" |
| | | > |
| | | <el-option |
| | | v-for="item in state.deptList" |
| | | :key="item.deptId" |
| | | :label="item.deptName" |
| | | :value="item.deptId" |
| | | /> |
| | | </el-select> |
| | | <el-input :disabled="title === '查看'" v-model="state.form.dutyUnitId" placeholder="责任单位"></el-input> |
| | | <!-- <el-select--> |
| | | <!-- :disabled="title === '查看'"--> |
| | | <!-- v-model="state.form.dutyUnitId"--> |
| | | <!-- placeholder="请选择部门"--> |
| | | <!-- style="width: 240px;margin-bottom: 5px"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in state.deptList"--> |
| | | <!-- :key="item.deptId"--> |
| | | <!-- :label="item.deptName"--> |
| | | <!-- :value="item.deptId"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="产品件号:" prop="partNum" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.partNum" placeholder="产品件号"></el-input> |
| | | </el-form-item> |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="反馈单位:" prop="feedUnitId" > |
| | | <el-select |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.feedUnitId" |
| | | placeholder="请选择部门" |
| | | style="width: 240px;margin-bottom: 5px" |
| | | > |
| | | <el-option |
| | | v-for="item in state.deptList" |
| | | :key="item.deptId" |
| | | :label="item.deptName" |
| | | :value="item.deptId" |
| | | /> |
| | | </el-select> |
| | | <el-input :disabled="title === '查看'" v-model="state.form.feedUnitId" placeholder="反馈单位"></el-input> |
| | | <!-- <el-select--> |
| | | <!-- :disabled="title === '查看'"--> |
| | | <!-- v-model="state.form.feedUnitId"--> |
| | | <!-- placeholder="请选择部门"--> |
| | | <!-- style="width: 240px;margin-bottom: 5px"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in state.deptList"--> |
| | | <!-- :key="item.deptId"--> |
| | | <!-- :label="item.deptName"--> |
| | | <!-- :value="item.deptId"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="反馈人:" prop="feedUserId" > |
| | | <el-select clearable v-model="state.form.feedUserId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | <el-input :disabled="title === '查看'" v-model="state.form.feedUserId" placeholder="反馈人"></el-input> |
| | | <!-- <el-select clearable v-model="state.form.feedUserId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px">--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in state.peopleList"--> |
| | | <!-- :key="item.id"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.id"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="处置人:" prop="disposeId" > |
| | | <el-select clearable v-model="state.form.disposeId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-select clearable v-model="state.form.disposeId" :disabled="title =='查看'" filterable style="width: 100%;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="disposeTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.disposeTime" |
| | | type="date" |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="检验员:" prop="checkOutId" > |
| | | <el-select clearable v-model="state.form.checkOutId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-select clearable v-model="state.form.checkOutId" :disabled="title =='查看'" filterable style="width: 100%;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="checkOutTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.checkOutTime" |
| | | type="date" |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="反馈单位复查人:" prop="reviewId" > |
| | | <el-select clearable v-model="state.form.reviewId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-select clearable v-model="state.form.reviewId" :disabled="title =='查看'" filterable style="width: 100%;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="reviewTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.reviewTime" |
| | | type="date" |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="检验组长:" prop="teamId" > |
| | | <el-select clearable v-model="state.form.teamId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-select clearable v-model="state.form.teamId" :disabled="title =='查看'" filterable style="width: 100%;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="teamTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.teamTime" |
| | | type="date" |
| | |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="责任单位领导:" prop="dutyLeaderId" > |
| | | <el-select clearable v-model="state.form.dutyLeaderId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px"> |
| | | <el-select clearable v-model="state.form.dutyLeaderId" :disabled="title =='查看'" filterable style="width: 100%;margin-bottom: 5px"> |
| | | <el-option |
| | | v-for="item in state.peopleList" |
| | | :key="item.id" |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="日期:" prop="dutyLeaderTime" > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | :disabled="title === '查看'" |
| | | v-model="state.form.dutyLeaderTime" |
| | | type="date" |
| | |
| | | dutyUnitId: [{ required: true, message: '请输入责任单位', trigger: 'blur' }], |
| | | partNum: [{ required: true, message: '请输入产品件号', trigger: 'blur' }], |
| | | feedUnitId: [{ required: true, message: '请输入反馈单位', trigger: 'blur' }], |
| | | feedUserId: [{ required: true, message: '请选择反馈人', trigger: 'blur' }], |
| | | feedUserId: [{ required: true, message: '请输入反馈人', trigger: 'blur' }], |
| | | feedTime: [{ required: true, message: '请选择反馈日期', trigger: 'blur' }], |
| | | feedQuestion: [{ required: true, message: '请输入反馈问题描述', trigger: 'blur' }], |
| | | // disposeId: [{ required: true, message: '请选择处置人', trigger: 'blur' }], |
| | |
| | | title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; |
| | | if(type === 'edit' || type === 'review') { |
| | | state.form = JSON.parse(JSON.stringify(value)); |
| | | state.form.disposeId = state.form.disposeId ?state.form.disposeId:null |
| | | state.form.checkOutId = state.form.checkOutId ?state.form.checkOutId:null |
| | | state.form.reviewId = state.form.reviewId ?state.form.reviewId:null |
| | | state.form.teamId = state.form.teamId ?state.form.teamId:null |
| | | state.form.rework = state.form.teamId ?state.form.rework:null |
| | | state.form.delay = state.form.delay ?state.form.delay:null |
| | | |
| | | if(state.isAdmin){ |
| | | state.form.companyId = value.companyId |
| | | state.form.companyName = value.companyName |
| | |
| | | placeholder="请选择年份" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="文件名称:" prop="inconsistentName"> |
| | | <el-form-item label="不符合项内容:" prop="inconsistentName"> |
| | | <el-input v-model.trim="state.form.inconsistentName" :disabled="state.title =='查看'" placeholder="文件名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="文件:" prop="filePath"> |
| | | <el-upload accept=".doc,.docx,.pdf,.jpg" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" > |
| | | <el-button type="primary">点击上传</el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg格式,尺寸小于5M,最多可上传1份</div> |
| | | <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.jpg格式,尺寸小于5M,最多可上传10份</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | |
| | | id: null, |
| | | year: '', |
| | | inconsistentName: '', |
| | | filePath: '', |
| | | filePath: [], |
| | | format: '', |
| | | companyId: null |
| | | }, |
| | |
| | | header: { |
| | | Authorization: getToken() |
| | | }, |
| | | fileLimit: 1, |
| | | fileLimit: 10, |
| | | fileList: [] |
| | | }) |
| | | onMounted(() => { |
| | |
| | | state.form[key] = value[key] |
| | | } |
| | | }) |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | | name: '模板文件' |
| | | } |
| | | state.fileList = [obj] |
| | | if(!value.filePath || value.filePath == ''){ |
| | | state.form.filePath = [] |
| | | }else{ |
| | | const certificatePaths = value.filePath.split(',') |
| | | state.form.filePath = certificatePaths |
| | | state.fileList = certificatePaths.map((path, index) => { |
| | | const fileName = path.split('/').pop() || `文件${index + 1}` |
| | | return { |
| | | name: fileName, |
| | | url: path, |
| | | response: { |
| | | data: { |
| | | path: path, |
| | | fileName: fileName |
| | | } |
| | | }, |
| | | status: 'success', |
| | | uid: Date.now() + index |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | dialogVisible.value = true |
| | |
| | | if(valid){ |
| | | if(state.title == '新增'){ |
| | | const {id,...data} = state.form |
| | | data.filePath = state.fileList |
| | | .filter(file => file.response?.data?.path) |
| | | .map(file => file.response.data.path).join(',') |
| | | const res = await addSelectInconsistent(data) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | |
| | | ElMessage.warning(res.message) |
| | | } |
| | | }else{ |
| | | const res = await updateSelectInconsistent(state.form) |
| | | const data = JSON.parse(JSON.stringify(state.form)) |
| | | data.filePath = state.fileList |
| | | .filter(file => file.response?.data?.path) |
| | | .map(file => file.response.data.path).join(',') |
| | | const res = await updateSelectInconsistent(data) |
| | | if(res.code == 200){ |
| | | ElMessage.success(res.message) |
| | | emit('getList') |
| | |
| | | } |
| | | } |
| | | |
| | | const handleAvatarSuccess = (res, uploadFile) => { |
| | | if(res.code == 200){ |
| | | state.form.filePath = res.data.path |
| | | state.form.format = '.' + res.data.filename.split('.')[1] |
| | | }else{ |
| | | state.fileList = [] |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '文件上传失败' |
| | | }) |
| | | const handleAvatarSuccess = (response, uploadFile) => { |
| | | if(response.code === 200){ |
| | | // 设置文件显示名称 |
| | | uploadFile.name = response.data.fileName || `文件${state.fileList.length}` |
| | | uploadFile.url = response.data.url || response.data.path |
| | | ElMessage.success('文件上传成功') |
| | | } else { |
| | | const index = state.fileList.findIndex(file => file.uid === uploadFile.uid) |
| | | if (index > -1) { |
| | | state.fileList.splice(index, 1) |
| | | } |
| | | ElMessage.error(response.message || '文件上传失败') |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | }; |
| | | const handleRemove = async (file, uploadFiles) => { |
| | | let path = state.form.filePath; |
| | | await delPic({path: path}).then(res => { |
| | | if(res.code == 200){ |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // message: '文件已删除' |
| | | // }) |
| | | state.form.filePath = '' |
| | | state.form.format = '' |
| | | }else{ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.message |
| | | }) |
| | | try { |
| | | if (file.response?.data?.path) { |
| | | await delPic({ path: file.response.data.path }) |
| | | ElMessage.success('文件删除成功') |
| | | } |
| | | }).catch(() => { |
| | | state.form.imgUrl = '' |
| | | }); |
| | | } catch (error) { |
| | | ElMessage.error('文件删除失败') |
| | | } |
| | | } |
| | | |
| | | const handleClose = () => { |
| | |
| | | id: null, |
| | | year: '', |
| | | inconsistentName: '', |
| | | filePath: '', |
| | | filePath: [], |
| | | format: '', |
| | | companyId: null |
| | | } |
| | |
| | | <!-- 表格数据 --> |
| | | <el-table v-loading="loading" :data="dataList" :border="true"> |
| | | <el-table-column label="序号" type="index" align="center" width="80"/> |
| | | <el-table-column label="文件名称" prop="inconsistentName" align="center"/> |
| | | <el-table-column label="不符合项内容" prop="inconsistentName" align="center"/> |
| | | <el-table-column label="年份" prop="year" align="center"/> |
| | | <el-table-column label="文件" align="center"> |
| | | <template #default="scope"> |
| | | <el-link type="primary" @click="openFile(scope.row.filePath)">{{scope.row.inconsistentName + scope.row.format}}</el-link> |
| | | <el-link v-for="(path,index) in scope.row.filePath?.split(',')" :key="index" type="primary" @click="openFile(path)">{{scope.row.inconsistentName + '文件'+(index + 1) + '.' + path.split('.')[1]}}<span v-if="index < scope.row.filePath?.split(',').length - 1">、</span></el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > |
| | | <template #default="scope"> |
| | | <el-button link type="primary" @click="downloadFile(scope.row.filePath)" v-hasPermi="['noConformanceMng:list:edit']">下载</el-button> |
| | | <!-- <el-button link type="primary" @click="downloadFile(scope.row.filePath)" v-hasPermi="['noConformanceMng:list:edit']">下载</el-button>--> |
| | | <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['noConformanceMng:list:edit']">编辑</el-button> |
| | | <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['noConformanceMng:list:del']">删除</el-button> |
| | | </template> |