@@ -132,251 +145,16 @@ import StandardSelection from '../../../../components/selection/StandardSelectio
import { downFile } from '../../../../api/manage'
import StandardListDrawer from './StandardListDrawer'
import ComparisonMaintainDrawer from './ComparisonMaintainDrawer'
-import { deleteSpecialtyItem, deleteMaintainItem } from '../../../../api/documentToolApi'
+import {
+ deleteSpecialtyItem,
+ deleteMaintainItem,
+ saveFormData,
+ getFormDataById,
+ saveStandard,
+ getTableData
+} from '../../../../api/documentToolApi'
import CustomComparisonCellDrawer from './CustomComparisonCellDrawer'
-
-const ApiData = {
- 'countryMap': {
- '': [
- {
- 'id': 'QTGBP59D7AKHDLD2T4R6',
- 'country': null,
- 'standNum': 'GB 11212-121212',
- 'standName': '1111',
- 'standId': '63e289e4dda24f90a51e',
- 'standType': 'INLAND',
- 'compareBaseId': 'GGCD9DAEY3M7LMRPQ96C',
- 'createTime': 1698136081000,
- 'countries': null,
- 'standState': null,
- 'standStateShow': null
- },
- {
- 'id': 'UWARF4EQJLVNQ9A5J29H',
- 'country': null,
- 'standNum': 'GB 9999-2023',
- 'standName': '商-测试标准',
- 'standId': 'c427b19d88374476b71e',
- 'standType': 'INLAND',
- 'compareBaseId': 'GGCD9DAEY3M7LMRPQ96C',
- 'createTime': 1698136081000,
- 'countries': null,
- 'standState': null,
- 'standStateShow': null
- }
- ],
- '欧盟': [
- {
- 'id': 'XL438X5H5LRUMBE49FF5',
- 'country': 'EU_C',
- 'standNum': 'GB 7258-20XX',
- 'standName': '机动车运行安全条件',
- 'standId': '738414b579b84093b151',
- 'standType': 'INLAND',
- 'compareBaseId': 'GGCD9DAEY3M7LMRPQ96C',
- 'createTime': 1698284537000,
- 'countries': null,
- 'standState': null,
- 'standStateShow': null
- }
- ],
- '中国,欧盟,非洲': [
- {
- 'id': 'VHBUCSFG3BW6RMNUGRA5',
- 'country': 'EU_C,S9BPTW2EPF,CN',
- 'standNum': 'GB 15089-2001',
- 'standName': '机动车辆及其挂车分类',
- 'standId': '14516a9061b745fbad71',
- 'standType': 'INLAND',
- 'compareBaseId': 'GGCD9DAEY3M7LMRPQ96C',
- 'createTime': 1698285956000,
- 'countries': null,
- 'standState': null,
- 'standStateShow': null
- }
- ]
- },
- 'ranksMap': {
- 'ITEM': [
- {
- 'id': 'a4363725b24d46e2b985',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '适用范围',
- 'validFlag': '0',
- 'creationTime': '2023-10-24',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'ITEM',
- 'natureList': null,
- 'compareItemList': null,
- 'color': 'red',
- 'result': 'sdfd ',
- 'orderNum': null,
- 'underOrderNum': null
- },
- {
- 'id': '2eb67bc13f294f649e04',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '定义',
- 'validFlag': '0',
- 'creationTime': '2023-10-24',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'ITEM',
- 'natureList': null,
- 'compareItemList': null,
- 'color': '',
- 'result': null,
- 'orderNum': null,
- 'underOrderNum': null
- },
- {
- 'id': '8e29f388af374eaeb607',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '东方红发过火',
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'ITEM',
- 'natureList': null,
- 'compareItemList': null,
- 'color': '',
- 'result': null,
- 'orderNum': null,
- 'underOrderNum': null
- }
- ],
- 'NATURE': [
- {
- 'id': 'c918fe1cc95c4d4c9776',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '章节',
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'NATURE',
- 'natureList': null,
- 'compareItemList': null,
- 'color': '',
- 'result': null,
- 'orderNum': null,
- 'underOrderNum': null
- },
- {
- 'id': '58d6c194ecc44c66b0a6',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '法规内容',
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'NATURE',
- 'natureList': null,
- 'compareItemList': null,
- 'color': '',
- 'result': null,
- 'orderNum': null,
- 'underOrderNum': null
- },
- {
- 'id': 'd89f153e6a3e4950b46c',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'proertyVal': '但是丰东股份冻干粉大概',
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'proertyType': 'NATURE',
- 'natureList': null,
- 'compareItemList': null,
- 'color': '',
- 'result': null,
- 'orderNum': null,
- 'underOrderNum': null
- }
- ]
- },
- 'list': [
- {
- 'validFlag': '0',
- 'creationTime': '2023-10-25',
- 'modifyTime': '2023-10-25',
- 'formFile': null,
- 'id': '3S49DS2MCRW2LLR85ANF',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'sarId': '63e289e4dda24f90a51e',
- 'natureId': '6fd7471e1f364299b8fc',
- 'itemId': '2eb67bc13f294f649e04',
- 'formContent': 'uj',
- 'sarNumber': 'GB 11212-121212',
- 'sarRegion': '',
- 'compareName': null,
- 'natureName': null,
- 'formFileList': []
- },
- {
- 'validFlag': '0',
- 'creationTime': '2023-10-24',
- 'modifyTime': '2023-10-24',
- 'formFile': null,
- 'id': '5QZFJA8RJQ67MTXRLGN2',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'sarId': '63e289e4dda24f90a51e',
- 'natureId': '6fd7471e1f364299b8fc',
- 'itemId': 'a4363725b24d46e2b985',
- 'formContent': 'xx',
- 'sarNumber': 'GB 11212-121212',
- 'sarRegion': '',
- 'compareName': null,
- 'natureName': null,
- 'formFileList': []
- },
- {
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'formFile': ',ATT_FILE_10_UJZTNK3EV4YCCFHY3BC8',
- 'id': 'B2M2LAASEGPP5QRX6PLF',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'sarId': '63e289e4dda24f90a51e',
- 'natureId': 'f1e39a369b5748e8bd76',
- 'itemId': 'a4363725b24d46e2b985',
- 'formContent': null,
- 'sarNumber': 'GB 11212-121212',
- 'sarRegion': '',
- 'compareName': null,
- 'natureName': null,
- 'formFileList': [
- {
- 'id': 'ATT_FILE_10_UJZTNK3EV4YCCFHY3BC8',
- 'fileName': 'UJZTNK3EV4YCCFHY3BC8.png',
- 'oldFileName': '42391722989afbf0579b0876cad9707.png',
- 'fileSuffix': 'png',
- 'filePath': '/69/27/34/',
- 'validFlag': 0,
- 'creationTime': 1698284432000,
- 'modifyTime': 1698284432000,
- 'tableName': 'ATT_FILE_10',
- 'resId': null,
- 'downLoadUrl': null
- }
- ]
- },
- {
- 'validFlag': '0',
- 'creationTime': '2023-10-26',
- 'modifyTime': '2023-10-26',
- 'formFile': null,
- 'id': 'KKESX8FVKZXLRU74YRFG',
- 'compareId': 'GGCD9DAEY3M7LMRPQ96C',
- 'sarId': '63e289e4dda24f90a51e',
- 'natureId': 'c918fe1cc95c4d4c9776',
- 'itemId': 'a4363725b24d46e2b985',
- 'formContent': '电饭锅地方会更好v才不会v才能帮你',
- 'sarNumber': 'GB 11212-121212',
- 'sarRegion': '',
- 'compareName': null,
- 'natureName': null,
- 'formFileList': []
- }
- ]
-}
+import { getFormDictTreeList } from '../../../../api/api'
export default {
name: 'CustomComparisonDrawer',
@@ -401,18 +179,18 @@ export default {
},
validatorRules: {
// 清单名称
- title: {
+ listName: {
rules: [{ required: true, message: this.$t('pleaseEnter') + this.$t('standardSelect.standardName') }],
validateTrigger: 'blur'
},
// 涉及标准
- serialNumber: {
+ referenceStandard: {
rules: [{ required: true, message: this.$t('pleaseSelect') + this.$t('standardSelect.standardNumber') }],
validateTrigger: 'change'
},
- // 文本状态
- fileType: {
- rules: [{ required: true, message: this.$t('pleaseSelect') + this.$t('docTool.comparison.textStatus') }],
+ // 涉及国家
+ referenceCountry: {
+ rules: [{ required: false, message: this.$t('pleaseSelect') + this.$t('docTool.comparison.textStatus') }],
validateTrigger: 'change'
},
// 拆分结果文件
@@ -421,26 +199,48 @@ export default {
validateTrigger: 'change'
}
},
- isStartComparison: true, // 是否发起比对,为是的时候显示下面的内容
- isEdit: true, // 是否在编辑状态里
+ isStartComparison: false, // 是否发起比对,为是的时候显示下面的内容
+ isEdit: false, // 是否在编辑状态里
standardList: [], // 标准的列表
- specialtyItemList: [] // 特点的列表(三级表头)
+ specialtyItemList: [], // 特点的列表(三级表头)
+ isFirstOpenComparison: true, // 第一次打开在线比对
+ countryTreeData: [] // 涉及国家数据
}
},
methods: {
add () {
this.visible = true
- this.processData(ApiData)
- this.processTableData(ApiData)
+ this.initDictConfig()
},
- edit (record) {
- this.modal = Object.assign({}, record)
+ edit (id) {
+ this.visible = true
+ this.initDictConfig()
+ this.modal = { id }
+ this.isFirstOpenComparison = false
+ this.getFormData()
+ this.initTableData()
+ },
+ initDictConfig () {
+ // 涉及国家
+ getFormDictTreeList({ dictId: '1706192138039345153' }).then(res => {
+ if (res.success) {
+ this.countryTreeData = res.result || []
+ }
+ })
},
handleCancel () {
this.close()
},
close () {
this.visible = false
+ this.form.resetFields()
+ this.modal = {}
+ this.isStartComparison = false
+ this.isEdit = false
+ this.standardList = []
+ this.specialtyItemList = []
+ this.columns = []
+ this.dataSource = []
},
/**
* 导出
@@ -492,7 +292,7 @@ export default {
*/
viewStandardList () {
console.log(this.form.getFieldValue('serialNumber'))
- this.$refs.standardListDrawer.open()
+ this.$refs.standardListDrawer.open(this.modal.id)
},
/**
* 删除标准
@@ -508,7 +308,7 @@ export default {
* 重新加载表格数据
*/
reloadTableData () {
-
+ this.initTableData()
},
/**
* 对比维护
@@ -543,7 +343,7 @@ export default {
const levelTwo = []
countryStandardList.forEach((standard, standardIndex) => {
const objLevelTwo = {
- title: standard.standNum,
+ title: standard.standardNumber,
children: [],
width: this.specialtyItemList.length * 200 || 400
}
@@ -551,7 +351,7 @@ export default {
if (this.specialtyItemList && this.specialtyItemList.length > 0) {
this.specialtyItemList.forEach((specialtyItem, specialtyItemIndex) => {
objLevelTwo.children.push({
- dataIndex: `${standard.standNum}-${specialtyItem.id}-label`,
+ dataIndex: `${standard.standardNumber}-${specialtyItem.id}-label`,
slots: { title: 'specialtyItem' + standardIndex + specialtyItemIndex },
width: 200,
scopedSlots: { customRender: 'cell' }
@@ -640,7 +440,7 @@ export default {
* 比对分析结果,在末尾加一列,如果已经有了,就隐藏这列
*/
handleResult () {
- if (this.columns[this.columns.length - 1].dataIndex === 'color') {
+ if (this.columns && this.columns.length > 0 && this.columns[this.columns.length - 1].dataIndex === 'result') {
this.columns.splice(this.columns.length - 1, 1)
} else {
this.columns.push({
@@ -651,6 +451,104 @@ export default {
scopedSlots: { customRender: 'resultCell' }
})
}
+ },
+ /**
+ * 保存表单内容
+ * 清单名称、涉及国家、是否公开三个字段
+ */
+ handleSaveForm () {
+ this.form.validateFields((errors, values) => {
+ if (!errors) {
+ this.confirmLoading = true
+ const formData = Object.assign(this.modal, values)
+ saveFormData(formData).then(res => {
+ if (res.success) {
+ this.$message.success(res.message)
+ this.isFirstOpenComparison = false
+ this.reloadTableData()
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.confirmLoading = false
+ })
+ }
+ })
+ },
+ /**
+ * 切换显隐下方表格,如果是首次显示,需要保存form表单
+ */
+ handleSwitchChange () {
+ if (this.isStartComparison && this.isFirstOpenComparison) {
+ this.handleSaveForm()
+ }
+ },
+ /**
+ * 获取上方表单数据,修改了标准的信息也需要调用这个方法
+ */
+ getFormData () {
+ this.confirmLoading = true
+ getFormDataById({ id: this.modal.id }).then(res => {
+ if (res.success) {
+ this.modal = Object.assign(this.modal, res.result || {})
+ // 处理关联国家的回显
+ if (this.modal.referenceCountry) {
+ const referenceCountryArr = this.modal.referenceCountry.split(',')
+ this.modal.referenceCountry = referenceCountryArr.map(tt => {
+ return {
+ value: tt
+ }
+ })
+ } else {
+ this.modal.referenceCountry = undefined
+ }
+ this.$nextTick(() => {
+ this.form.setFieldsValue(this.modal)
+ })
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.confirmLoading = false
+ })
+ },
+ /**
+ * 修改了标准,调用标准检索保存接口,成功后再次获取表单数据和表格数据
+ * @param value
+ */
+ handleStandardChange (value) {
+ this.confirmLoading = true
+ const params = this.form.getFieldsValue()
+ params.standardNumber = value
+ saveStandard(params).then(res => {
+ if (res.success) {
+ this.$message.success(res.message)
+ this.getFormData()
+ this.reloadTableData()
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.confirmLoading = false
+ })
+ },
+ /**
+ * 获取表格数据
+ */
+ initTableData () {
+ this.confirmLoading = true
+ getTableData({ id: this.modal.id }).then(res => {
+ if (res.success) {
+ // 平铺一些数据
+ this.processData(res.result || {})
+ // 把数据处理成表格需要的样子
+ this.processTableData(res.result || {})
+ } else {
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.confirmLoading = false
+ })
}
}
}
@@ -732,4 +630,9 @@ export default {
color: @primary-color;
}
}
+
+.submit-btn {
+ float: right;
+ margin-top: 4px;
+}
\ No newline at end of file
diff --git a/src/views/documentTool/customComparison/modules/StandardListDrawer.vue b/src/views/documentTool/customComparison/modules/StandardListDrawer.vue
index 7e5ac7c2..2e2b2fb9 100644
--- a/src/views/documentTool/customComparison/modules/StandardListDrawer.vue
+++ b/src/views/documentTool/customComparison/modules/StandardListDrawer.vue
@@ -41,7 +41,8 @@