| | |
| | | > |
| | | <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules" label-width="120px" > |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="企业名称:" prop="companyName" v-if="state.isAdmin"> |
| | | <el-select |
| | | v-model="state.form.companyName" |
| | | filterable |
| | | remote |
| | | :disabled="title == '查看' || !state.isAdmin" |
| | | @change="selectValueCom" |
| | | reserve-keyword |
| | | placeholder="请输入企业名称" |
| | | remote-show-suffix |
| | | :remote-method="getCompanyList" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in state.companyList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="年份:" prop="year" > |
| | | <!-- <el-input v-model="state.form.year" placeholder="请输入年份"></el-input>--> |
| | |
| | | |
| | | }, |
| | | rules: { |
| | | companyName: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | year: [{ required: true, message: '请输入年份', trigger: 'blur' }], |
| | | num: [{ required: true, message: '请输入序号', trigger: 'blur' }], |
| | | type: [{ required: true, message: '请选择级别', trigger: 'blur' }], |
| | |
| | | departId: [{ required: true, message: '请选择部门', trigger: 'blur' }], |
| | | objName: [{required: true, message: "质量目标不能为空", trigger: "blur"}], |
| | | }, |
| | | isAdmin: false, |
| | | companyList: [], |
| | | deptList: [], |
| | | peopleList: [], |
| | | yearList: [ |
| | |
| | | |
| | | const openDialog = async (type, value) => { |
| | | const userInfo = JSON.parse(Cookies.get('userInfo')) |
| | | state.isAdmin = userInfo.userType === 0; |
| | | state.form.companyName = userInfo.companyName |
| | | state.form.companyId = userInfo.companyId |
| | | await getDeptList() |
| | | title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; |
| | | if(type === 'edit' || type === 'review') { |
| | | state.form = JSON.parse(JSON.stringify(value)); |
| | | if(state.isAdmin){ |
| | | state.form.companyId = value.companyId |
| | | state.form.companyName = value.companyName |
| | | } |
| | | } |
| | | dialogVisible.value = true; |
| | | } |
| | |
| | | qualityTargets:[], |
| | | } |
| | | state.peopleList = [] |
| | | state.companyList = [] |
| | | |
| | | } |
| | | const handleDelete = (val) => { |
| | |
| | | if (!/^\d+$/.test(value)) { // 验证是否为数字 |
| | | ElMessage.warning('只能输入数字') |
| | | state.form.year = '' // 重置选择,避免非法值被添加到options中 |
| | | } else if (!state.yearList.some(option => option.value === value)) { // 确保不是已存在的选项 |
| | | } else if (!state.yearList.some(option => option.label === value)) { // 确保不是已存在的选项 |
| | | state.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同) |
| | | } |
| | | } |
| | | const selectValueCom = (val) => { |
| | | state.companyList.forEach(item => { |
| | | if(item.name === val){ |
| | | state.form.companyId = item.id |
| | | } |
| | | }) |
| | | } |
| | | const getCompanyList = async (val)=>{ |
| | | if(val != ""){ |
| | | const queryParams = { |
| | | name: val |
| | | } |
| | | const res = await getCompany(queryParams) |
| | | if (res.code == 200) { |
| | | state.companyList = res.data.list |
| | | |
| | | } else { |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | } |
| | | |
| | | defineExpose({ |
| | | openDialog |