|
|
@@ -24,11 +24,12 @@
|
|
|
clearable
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否为主项目" prop="isMainProject">
|
|
|
- <el-radio-group v-model="formData.isMainProject">
|
|
|
- <el-radio :value="true">是</el-radio>
|
|
|
- <el-radio :value="false">否</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <el-form-item label="项目类型" prop="projectType">
|
|
|
+ <el-select v-model="formData.projectType" placeholder="请选择项目类型" clearable style="width: 100%">
|
|
|
+ <el-option label="主项目" value="MAIN"/>
|
|
|
+ <el-option label="子项目" value="SUB"/>
|
|
|
+ <el-option label="独走项目" value="STANDALONE"/>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="记录文件" prop="recordTemplateId">
|
|
|
<el-select v-model="formData.recordTemplateId" placeholder="请选择记录文件" filterable
|
|
|
@@ -52,7 +53,7 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目代码" prop="projectCode" v-if="formData.isMainProject">
|
|
|
+ <el-form-item label="项目代码" prop="projectCode" v-if="formData.projectType === 'MAIN' || formData.projectType === 'STANDALONE'">
|
|
|
<el-select
|
|
|
v-model="formData.projectCode"
|
|
|
placeholder="请选择质量部检验项目"
|
|
|
@@ -68,7 +69,7 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="受理单模板" prop="acceptOrderTemplateId" v-if="formData.isMainProject">
|
|
|
+ <el-form-item label="受理单模板" prop="acceptOrderTemplateId" v-if="formData.projectType === 'MAIN'">
|
|
|
<el-select v-model="formData.acceptOrderTemplateId" placeholder="请选择受理单模板"
|
|
|
filterable clearable>
|
|
|
<el-option
|
|
|
@@ -104,6 +105,23 @@
|
|
|
<el-form-item label="费用计算" prop="feeFileUrl" v-if="formData.feeCalcType === '0'">
|
|
|
<el-button @click="handleEditFeeFile">编辑</el-button>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="操作指导书" prop="operationInstruction" v-if="formData.projectType === 'STANDALONE'">
|
|
|
+ <el-select v-model="formData.operationInstruction" placeholder="请选择操作指导书" filterable clearable style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="item in operationInstructionList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.tbCode + ' - ' +item.tbName + '(' + item.versionNo + ')'"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="核准代号" prop="approvalCode" v-if="formData.projectType === 'STANDALONE'">
|
|
|
+ <el-input
|
|
|
+ v-model="formData.approvalCode"
|
|
|
+ placeholder="请输入核准代号"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="状态" prop="status">
|
|
|
<el-select v-model="formData.status" placeholder="请选择状态" clearable>
|
|
|
<el-option label="启用" value="1"/>
|
|
|
@@ -140,22 +158,27 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
|
const formData = ref({
|
|
|
id: undefined,
|
|
|
projectName: undefined,
|
|
|
- isMainProject: false,
|
|
|
+ projectType: undefined,
|
|
|
status: '1',
|
|
|
recordTemplateId: undefined,
|
|
|
reportTemplateId: undefined,
|
|
|
projectCode: undefined,
|
|
|
feeTypes: [],
|
|
|
acceptOrderTemplateId: undefined,
|
|
|
- feeCalcType: 'fixed',
|
|
|
+ feeCalcType: '1', // 1-固定费用, 0-参数计算
|
|
|
fee: undefined,
|
|
|
isAutoAmount: '0',
|
|
|
feeFileUrl: undefined, // 费用计算配置
|
|
|
+ operationInstruction: undefined,
|
|
|
+ approvalCode: undefined,
|
|
|
})
|
|
|
const formRules = reactive({
|
|
|
projectName: [
|
|
|
{required: true, message: '项目名称不能为空', trigger: 'blur'},
|
|
|
],
|
|
|
+ projectType: [
|
|
|
+ {required: true, message: '项目类型不能为空', trigger: 'change'},
|
|
|
+ ],
|
|
|
recordTemplateId: [
|
|
|
{required: computed(() => !formData.value.reportTemplateId), message: '记录文件不能为空', trigger: 'change'},
|
|
|
{
|
|
|
@@ -184,21 +207,21 @@ const formRules = reactive({
|
|
|
],
|
|
|
projectCode: [
|
|
|
{
|
|
|
- required: computed(() => formData.value.isMainProject),
|
|
|
- message: '主项目时项目代码不能为空',
|
|
|
+ required: computed(() => formData.value.projectType === 'MAIN' || formData.value.projectType === 'STANDALONE'),
|
|
|
+ message: '主项目或独走项目时项目代码不能为空',
|
|
|
trigger: 'change'
|
|
|
},
|
|
|
],
|
|
|
feeTypes: [
|
|
|
{
|
|
|
- required: computed(() => formData.value.isMainProject),
|
|
|
- message: '主项目时费用类型不能为空',
|
|
|
+ required: computed(() => formData.value.projectType === 'MAIN' || formData.value.projectType === 'STANDALONE'),
|
|
|
+ message: '主项目或独走项目时费用类型不能为空',
|
|
|
trigger: 'change'
|
|
|
},
|
|
|
],
|
|
|
acceptOrderTemplateId: [
|
|
|
{
|
|
|
- required: computed(() => formData.value.isMainProject),
|
|
|
+ required: computed(() => formData.value.projectType === 'MAIN'),
|
|
|
message: '主项目时受理单模板不能为空',
|
|
|
trigger: 'change'
|
|
|
},
|
|
|
@@ -209,12 +232,13 @@ const formRef = ref() // 表单 Ref
|
|
|
const feeCalculatorRef = ref() // 费用计算器 Ref
|
|
|
const recordList = ref()
|
|
|
const reportList = ref()
|
|
|
+const operationInstructionList = ref()
|
|
|
const qualityInspectionList = ref([]) // 质量部检验项目列表
|
|
|
const acceptOrderTemplateList = ref() // 受理单模板列表
|
|
|
const showFeeCalculator = ref(false) // 是否显示费用计算器
|
|
|
|
|
|
/** 打开弹窗 */
|
|
|
-const open = async (type: string, id?: number) => {
|
|
|
+const open = async (type: string, id?: string) => {
|
|
|
formType.value = type
|
|
|
resetForm()
|
|
|
// 修改时,设置数据
|
|
|
@@ -226,7 +250,6 @@ const open = async (type: string, id?: number) => {
|
|
|
...formData.value,
|
|
|
...data,
|
|
|
feeTypes: data.feeTypes ? data.feeTypes.split(',') : [],
|
|
|
- isMainProject: data.isMainProject == 1,
|
|
|
}
|
|
|
} finally {
|
|
|
formLoading.value = false
|
|
|
@@ -269,22 +292,25 @@ const handleBack = () => {
|
|
|
const resetForm = () => {
|
|
|
getRecordList()
|
|
|
getReportList()
|
|
|
+ getOperationInstructionList()
|
|
|
getQualityInspectionList()
|
|
|
getAcceptOrderTemplateList()
|
|
|
formData.value = {
|
|
|
id: undefined,
|
|
|
projectName: undefined,
|
|
|
- isMainProject: false,
|
|
|
+ projectType: undefined,
|
|
|
status: '1',
|
|
|
recordTemplateId: undefined,
|
|
|
reportTemplateId: undefined,
|
|
|
projectCode: undefined,
|
|
|
feeTypes: [],
|
|
|
acceptOrderTemplateId: undefined,
|
|
|
- feeCalcType: 'fixed',
|
|
|
+ feeCalcType: '1',
|
|
|
fee: undefined,
|
|
|
isAutoAmount: '0',
|
|
|
feeFileUrl: undefined,
|
|
|
+ operationInstruction: undefined,
|
|
|
+ approvalCode: undefined,
|
|
|
}
|
|
|
formRef.value?.resetFields()
|
|
|
}
|
|
|
@@ -319,6 +345,21 @@ const getReportList = async () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/** 查询操作指导书列表 */
|
|
|
+const getOperationInstructionList = async () => {
|
|
|
+ try {
|
|
|
+ const params = {
|
|
|
+ pageNo: 1,
|
|
|
+ pageSize: 1000,
|
|
|
+ reportType: 400, // 操作指导书
|
|
|
+ status: 200, // 只查询上架状态的模板
|
|
|
+ }
|
|
|
+ const data = await DynamicTbApi.getDynamicTbPage(params)
|
|
|
+ operationInstructionList.value = data.list
|
|
|
+ } finally {
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
/** 查询质量部检验项目列表 */
|
|
|
const getQualityInspectionList = async () => {
|
|
|
@@ -382,6 +423,7 @@ const handleFeeCalculatorBack = () => {
|
|
|
onMounted(() => {
|
|
|
getRecordList()
|
|
|
getReportList()
|
|
|
+ getOperationInstructionList()
|
|
|
})
|
|
|
|
|
|
</script>
|