| | |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | :title="state.title" |
| | | width="980px" |
| | | width="1080px" |
| | | :before-close="handleClose" |
| | | :close-on-press-escape="false" |
| | | :key="`select_${Date.now()}`" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" > |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="评审依据:" prop="reviewBasis"> |
| | | <el-input v-model.trim="state.form.reviewBasis" type="textarea" :rows="4" :disabled="state.title =='查看'" placeholder="评审依据"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="评审内容:" prop="reviewContent"> |
| | | <el-input v-model.trim="state.form.reviewContent" type="textarea" :rows="4" :disabled="state.title =='查看'" placeholder="评审内容"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="评审意见:" prop="reviewOpinion"> |
| | | <el-input v-model.trim="state.form.reviewOpinion" type="textarea" :rows="4" :disabled="state.title =='查看'" placeholder="评审意见"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="评审组长:" prop="groupId"> |
| | | <el-select clearable v-model="state.form.groupId" :disabled="state.title =='查看'" filterable style="width: 100%"> |
| | | <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="12"> |
| | | <el-form-item label="日期:" prop="groupTime"> |
| | | <el-date-picker |
| | | :disabled="state.title === '查看'" |
| | | v-model="state.form.groupTime" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="批准领导:" prop="leaderId"> |
| | | <el-select clearable v-model="state.form.leaderId" :disabled="state.title =='查看'" filterable style="width: 100%"> |
| | | <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="12"> |
| | | <el-form-item label="日期:" prop="leaderTime"> |
| | | <el-date-picker |
| | | :disabled="state.title === '查看'" |
| | | v-model="state.form.leaderTime" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="项目文件:" prop="productItemId"> |
| | | <el-select clearable v-model="state.form.productItemId" :disabled="state.title =='查看'" filterable style="width: 308px"> |
| | | <el-form-item label="评审依据:" prop="productItemIds"> |
| | | <el-select |
| | | clearable |
| | | multiple |
| | | v-model="state.productItems" |
| | | :disabled="state.title =='查看'" |
| | | filterable |
| | | style="width: 100%"> |
| | | <el-option |
| | | v-for="item in state.itemFileList" |
| | | :key="item.id" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="评审内容:" prop="reviewContent"> |
| | | <el-input v-model.trim="state.form.reviewContent" type="textarea" :rows="4" :disabled="state.title =='查看'" placeholder="评审内容"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row :gutter="24">--> |
| | | <!-- <el-col :span="24">--> |
| | | <!-- <el-form-item label="评审意见:" prop="reviewOpinion">--> |
| | | <!-- <el-input v-model.trim="state.form.reviewOpinion" type="textarea" :rows="4" :disabled="state.title =='查看'" placeholder="评审意见"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <!-- <el-row :gutter="24">--> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="评审组长:" prop="groupId">--> |
| | | <!-- <el-select clearable v-model="state.form.groupId" :disabled="state.title =='查看'" filterable style="width: 100%">--> |
| | | <!-- <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="12">--> |
| | | <!-- <el-form-item label="日期:" prop="groupTime">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- :disabled="state.title === '查看'"--> |
| | | <!-- v-model="state.form.groupTime"--> |
| | | <!-- type="date"--> |
| | | <!-- placeholder="请选择日期"--> |
| | | <!-- value-format="YYYY-MM-DD"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <!-- <el-row :gutter="24">--> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="批准领导:" prop="leaderId">--> |
| | | <!-- <el-select clearable v-model="state.form.leaderId" :disabled="state.title =='查看'" filterable style="width: 100%">--> |
| | | <!-- <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="12">--> |
| | | <!-- <el-form-item label="日期:" prop="leaderTime">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- :disabled="state.title === '查看'"--> |
| | | <!-- v-model="state.form.leaderTime"--> |
| | | <!-- type="date"--> |
| | | <!-- placeholder="请选择日期"--> |
| | | <!-- value-format="YYYY-MM-DD"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item required label= "合同评审人员签署:" > |
| | |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="姓名" align="center"> |
| | | <el-table-column prop="name" label="姓名" align="center" width="110"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'reviewUsers.' + '[' + $index + ']' + '.reviewUserId'" :rules="state.rules.reviewUserId"> |
| | | <el-select clearable v-model="row.reviewUserId" :disabled="state.title =='查看'" filterable style="width: 245px" @change="chooseUser($index,row.reviewUserId)"> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="userDept" label="单位/部门" align="center"></el-table-column> |
| | | <el-table-column prop="userDuty" label="职务/职称" align="center"></el-table-column> |
| | | <el-table-column prop="status" label="状态" align="center"> |
| | | <template #default="{row,$index}"> |
| | | <div>{{row.status == 1 ? '待发送':row.status == 2 ? '待审批': row.status == 3? '已审批':''}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="reviewOpinion" label="评审意见" align="center"> |
| | | <template #default="{row,$index}"> |
| | | <div>{{row.reviewOpinion == 1 ? '同意':row.reviewOpinion == 2 ? '不同意':''}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="reviewTime" label="评审日期" align="center"></el-table-column> |
| | | <el-table-column prop="sign" label="签名" align="center" width="120"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'reviewUsers.' + '[' + $index + ']' + '.sign'"> |
| | |
| | | </div> |
| | | <div v-else></div> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="状态" align="center"> |
| | | <template #default="{row,$index}"> |
| | | <div>{{row.status == 1 ? '待发送':row.status == 2 ? '待审批': row.status == 3? '已审批':''}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="state.title !== '查看'" > |
| | |
| | | groupTime: "", |
| | | leaderId: null, |
| | | leaderTime: "", |
| | | productItemId: null, |
| | | productItemIds: null, |
| | | }, |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | |
| | | groupTime: [{ required: true, message: '请选择时间', trigger: 'blur' }], |
| | | leaderId: [{ required: true, message: '请选择评审领导', trigger: 'blur' }], |
| | | leaderTime: [{ required: true, message: '请选择时间', trigger: 'blur' }], |
| | | productItemId: [{ required: true, message: '请选择项目文件', trigger: 'blur' }], |
| | | productItemIds: [{ required: true, message: '请选择项目文件', trigger: 'blur' }], |
| | | }, |
| | | rules:{ |
| | | reviewUserId: [{ required: true, message: '', trigger: 'blur' }], |
| | |
| | | id: 2, |
| | | name: '评审组员' |
| | | }, |
| | | ] |
| | | ], |
| | | productItems:[] |
| | | }) |
| | | onMounted(() => { |
| | | |
| | |
| | | state.form[key] = value[key] |
| | | } |
| | | }) |
| | | await nextTick(); |
| | | state.productItems = state.form.productItemIds.split(',').map(item => Number(item)) |
| | | if(value.filePath) { |
| | | const obj = { |
| | | url: value.filePath, |
| | |
| | | state.fileList = [obj] |
| | | } |
| | | state.form.itemId = state.form.itemId == 0 ? null : state.form.itemId |
| | | state.form.reviewUsers.forEach(item => { |
| | | const list = JSON.parse(JSON.stringify(value.reviewUsers)) |
| | | list.forEach(item => { |
| | | |
| | | item.sign = item.sign ? [import.meta.env.VITE_APP_BASE_API + '/' + item.sign] :[] |
| | | }) |
| | | state.form.reviewUsers = list |
| | | |
| | | } |
| | | await getProjectList() |
| | | await getPeopleList() |
| | |
| | | }; |
| | | |
| | | const onSubmit = async () => { |
| | | state.form.productItemIds = state.productItems.join(',') |
| | | const valid = await superRef.value.validate(); |
| | | if(valid){ |
| | | if(state.form.type == 1 && state.form.reviewUsers && state.form.reviewUsers.length == 0){ |
| | |
| | | groupTime: "", |
| | | leaderId: null, |
| | | leaderTime: "", |
| | | productItemId: null, |
| | | productItemIds: null, |
| | | } |
| | | state.fileList = [] |
| | | state.peopleList = [] |
| | | state.productItems = [] |
| | | superRef.value.clearValidate(); |
| | | superRef.value.resetFields() |
| | | dialogVisible.value = false; |
| | | } |
| | | const changeCom = () => { |
| | | state.form.itemId = null |
| | | state.form.productItemId = null |
| | | state.form.productItemIds = null |
| | | state.productItems = [] |
| | | state.form.reviewUsers.forEach(item => { |
| | | item.reviewUserId = null |
| | | item.userDept = '' |
| | |
| | | } |
| | | |
| | | const changeItem = () => { |
| | | state.form.productItemId = null |
| | | state.form.productItemIds = null |
| | | state.productItems = [] |
| | | getFileList() |
| | | } |
| | | const getFileList = async () => { |
| | |
| | | state.form.groupTime = null |
| | | state.form.leaderId = null |
| | | state.form.leaderTime = null |
| | | state.form.productItemId = null |
| | | state.form.productItemIds = null |
| | | state.productItems = [] |
| | | }else if(state.form.type == 1){ |
| | | state.form.stage = '' |
| | | state.form.fileName = '' |