| | |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" > |
| | | <el-form-item required label= "危化品列表" > |
| | | <el-form-item label= "危化品列表" > |
| | | <div style="display: flex;width: 100%;margin-top: 5px"> |
| | | <el-table :data="state.form.hazardousTargets" :border="true"> |
| | | <el-table :data="state.form.subscribeHazmats" :border="true"> |
| | | <el-table-column type="index" label="序号" width="80" align="center"></el-table-column> |
| | | <el-table-column label="危化品名称" align="center" > |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" > |
| | | <span>{{row.name}}</span> |
| | | <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" > |
| | | <span>{{row.hazmatName}}</span> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="数量" align="center" > |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'"> |
| | | <span>{{row.num}}</span> |
| | | <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'"> |
| | | <span>{{row.hazmatCount}}</span> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" > |
| | | <template #default="scope" > |
| | | <el-button link type="danger" @click="handleDelete(scope.row)" >删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-button |
| | | v-if="title !== '查看'" |
| | | style="margin-left: 20px" |
| | | type="primary" |
| | | @click="addObject" |
| | | >新增</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="申购文件:"> |
| | |
| | | <el-link type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="审批意见:" v-if="title === '审批' && state.form.state == 0" > |
| | | <el-form-item label="审批意见:" v-if="title === '审批'" prop="status"> |
| | | <div style="display: flex;flex-direction: column;width: 70%"> |
| | | <el-radio-group v-model="state.form.regestState"> |
| | | <el-radio :label="0">通过</el-radio> |
| | | <el-radio :label="1">驳回</el-radio> |
| | | <el-radio-group v-model="state.form.status"> |
| | | <el-radio :label="1">通过</el-radio> |
| | | <el-radio :label="2">驳回</el-radio> |
| | | </el-radio-group> |
| | | <el-input v-if="state.form.regestState == 1" v-model="state.form.regest" type="textarea" :rows="5"></el-input> |
| | | <el-input v-if="state.form.status == 2" v-model="state.form.opinion" type="textarea" placeholder="请输入审批意见" :rows="5"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="审批状态:" v-if="title === '查看' && state.form.state != 0"> |
| | | <span>{{state.form.state == 1 ? '审批通过' : '审批驳回' }}</span> |
| | | <el-form-item label="审批状态:" v-if="title === '查看' && state.form.status != 0" > |
| | | <span>{{state.form.status == 1 ? '审批通过' : '审批驳回' }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%"> |
| | | <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input> |
| | | <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%" > |
| | | <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer v-if="title !=='查看'"> |
| | |
| | | import {getUser} from "@/api/hazardousChemicals/user"; |
| | | import {getToken} from "@/utils/auth"; |
| | | import {renderAsync} from "docx-preview"; |
| | | import {auditSubscribe} from "@/api/hazardousChemicals/subscribeApply"; |
| | | |
| | | const dialogVisible = ref(false); |
| | | const title = ref(""); |
| | |
| | | const state = reactive({ |
| | | form: { |
| | | id: '', |
| | | creditCode: '', |
| | | name: '', |
| | | major: '', |
| | | phone: '', |
| | | code: '', |
| | | hazardousTargets:[], |
| | | opinion: null, |
| | | status: undefined, |
| | | subscribeHazmats:[], |
| | | }, |
| | | formRules:{ |
| | | creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }], |
| | | major:[{ required: true, message: '请输入负责人', trigger: 'blur' }], |
| | | type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }], |
| | | status: [{ required: true, message: '请选择审批意见', trigger: 'blur' }], |
| | | }, |
| | | |
| | | peopleList:[], |
| | | fileList:[], |
| | | uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile', |
| | | header: { |
| | | Authorization: getToken() |
| | | }, |
| | | fileLimit: 1, |
| | | }) |
| | | |
| | | |
| | | const openDialog = async (type, value) => { |
| | | title.value = type === 'approval' ? '审批' : type ==='edit' ? '申购编辑' : '查看' ; |
| | | title.value = type === 'approval' ? '审批' : type ==='view' ? '查看' : '' ; |
| | | state.form = JSON.parse(JSON.stringify(value)); |
| | | dialogVisible.value = true; |
| | | } |
| | | |
| | | const onSubmit = async () => { |
| | | const valid = await busRef.value.validate(); |
| | | if(!state.form.status){ |
| | | ElMessage.warning('请选择审批意见!') |
| | | return |
| | | } |
| | | if(valid){ |
| | | if(title.value === '审批'){ |
| | | const {id, ...data} = JSON.parse(JSON.stringify(state.form)) |
| | | data.code = data.code.toUpperCase() |
| | | const res = await addCompany(data) |
| | | const {subscribeHazmats, ...data} = JSON.parse(JSON.stringify(state.form)) |
| | | if(data.status == 2 && !data.opinion){ |
| | | ElMessage.warning('请输入审批意见!') |
| | | return |
| | | } |
| | | const res = await auditSubscribe(data) |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '新增成功' |
| | | message: '审批成功' |
| | | }); |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | |
| | | const reset = () => { |
| | | state.form = { |
| | | id: '', |
| | | creditCode: '', |
| | | name: '', |
| | | major: '', |
| | | phone: '', |
| | | code: '' |
| | | opinion:null, |
| | | status:undefined, |
| | | subscribeHazmats:[], |
| | | } |
| | | } |
| | | const addObject = () => { |
| | | |
| | | state.form.hazardousTargets.push({name:'',num:null}) |
| | | } |
| | | const handleDelete = (val) => { |
| | | state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val) |
| | | } |
| | | const selectValue = (val) => { |
| | | if(!val){ |
| | | state.form.userId = null |
| | | } |
| | | state.peopleList.forEach(item => { |
| | | if(item.name === val){ |
| | | state.form.userId = item.id |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |