Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

# Conflicts:
#	jero-web/src/common/lang/en-us.js
#	jero-web/src/common/lang/zh-cn.js
This commit is contained in:
zyx.net
2023-03-16 09:17:15 +08:00
39 changed files with 3319 additions and 538 deletions
+5
View File
@@ -895,6 +895,7 @@ module.exports = {
pleaseConformityVerification: 'Please complete the data of Conformity verification',
virtualListDetails: 'Virtual List Details',
virtualAuthenticationListDetails: 'Virtual Authentication List Details',
VirtualAuthenticationList: 'Virtual Authentication List',
maintainVirtualList: 'Maintain Virtual List',
certificationListMaintenance: 'Certification List Maintenance',
reasonsForRejection: 'Reasons For Rejection',
@@ -1431,6 +1432,10 @@ module.exports = {
onlyDataSelected:'Only data with process status of task to be confirmed, result to be submitted and review to be returned can be selected',
youCannotStatusListToBeReleasedAndApproved:'You cannot select data whose process status is list to be released and approved',
batchmodify:'Whether to batch modify',
onlyDataListReleasedAndCertificationReturnCanSelected:'Only data with the process status of list to be released and certification return can be selected',
type:'type',
select:'select',
onlyDataWithProcessStatusDeleted:'Only data with process status of list to be released and approved can be deleted',
registrationnumber:'Product registration number',
noticebatch:'Notice batch',
producttrademark:'Product Trademark',
+5
View File
@@ -907,6 +907,7 @@ module.exports = {
pleaseConformityVerification: '请补全验证符合性确认的数据',
virtualListDetails: '虚拟清单详情',
virtualAuthenticationListDetails: '虚拟认证清单详情',
VirtualAuthenticationList: '虚拟认证清单',
maintainVirtualList: '维护虚拟清单',
certificationListMaintenance: '认证清单维护',
reasonsForRejection: '驳回原因',
@@ -1533,6 +1534,10 @@ module.exports = {
onlyDataSelected:'只能选择流程状态为任务待确认、结果待提交、审查退回的数据',
youCannotStatusListToBeReleasedAndApproved:'不能选择流程状态为清单待发布、审查通过的数据',
batchmodify:'是否批量修改',
onlyDataListReleasedAndCertificationReturnCanSelected:'只能选择流程状态为清单待发布和认证退回的数据',
type:'类型',
select:'选择',
onlyDataWithProcessStatusDeleted:'只能删除流程状态为清单待发布和审查通过的数据',
registrationnumber:'产品登记编号',
noticebatch:'《公告》批次',
producttrademark:'产品商标',
@@ -542,6 +542,7 @@
// this.gData[0].isLeaf = false
this.defaultExpandedKeys = [this.departId]
if (num == 1) {
console.log(this.personneQuery)
if (this.userName && this.userName.length == 0) {
if (this.personneQuery[this.query.db_field_name + 'Name']) {
this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',')
@@ -55,6 +55,15 @@
<a-form-model-item :label="$t('enName')" prop="enName">
<a-input v-model.trim="form.enName" :placeholder="$t('PleaseEnterYourEnglishName')"/>
</a-form-model-item>
<a-form-model-item :label="$t('type')" prop="valueType" v-if="record.id == '1635543933669818369'">
<a-select v-model="form.valueType"
:placeholder="$t('pleaseSelect')"
allowClear>
<a-select-option :value="item.id" v-for="(item, index) in valueTypeList" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item :label="$t('ParentName')" prop="pid" v-if="parentVisible">
<a-select v-model="form.pid" @change="handleChange" :placeholder="$t('pleaseSelect')" allowClear>
<a-select-option :value="item.id" v-for="(item, index) in parentDataPid" :key="item.id">
@@ -105,6 +114,24 @@
pageSize: 10
},//查询条件
form: {},
valueTypeList:[
{
id:'file',
name:this.$t('enclosure')
},
{
id:'text',
name:this.$t('text')
},
{
id:'select',
name:this.$t('select')
},
{
id:'N/A',
name:'NA'
},
],
newVisible: false,
rules: {
name: [
@@ -112,6 +139,9 @@
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
{ validator: this.test }
],
valueType:[
{ required: true, message: this.$t('type') + this.$t('cannotEmpty'), trigger: 'change' },
],
itemText: [
{ required: true, message: this.$t('enterName'), trigger: 'blur' },
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
@@ -147,7 +177,8 @@
editPId: '',
tabletreeDataSource: [],
flag: false, //提交表单标识
parentDataPid: []
parentDataPid: [],
valueTypeVisible:true
}
},
watch: {
@@ -73,8 +73,9 @@
<template slot="action" slot-scope="text, record">
<a class="action-dict" @click="handleDicPop(record)">{{$t('DictionaryConfiguration')}}</a>
<a class="action-edit" @click="actionEdit(record)" v-has="'dict:edit'">{{$t('edit')}}</a>
<a class="action-delete" href="javascript:;" @click="onDelete(record)" v-has="'dict:logicDelete'">{{$t('delete')}}</a>
<a class="action-edit" v-if="record.id != '1635543933669818369'" @click="actionEdit(record)" v-has="'dict:edit'">{{$t('edit')}}</a>
<a class="action-delete" v-if="record.id != '1635543933669818369'" href="javascript:;" @click="onDelete(record)"
v-has="'dict:logicDelete'">{{$t('delete')}}</a>
</template>
<template slot="describe" slot-scope="text, record">
<span class="text" :title="text">
@@ -124,7 +125,7 @@
// tabTable,
DicList
},
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('add'),
@@ -244,13 +245,13 @@
this.loading = false
this.total = res.result.total
this.tableData = [...res.result.records]
}else{
} else {
this.loading = false
}
})
// .finally(() => {
// this.loading = false
//})
// .finally(() => {
// this.loading = false
//})
},
//查询
searchQuery() {
@@ -20,12 +20,16 @@
</div>
<a-form-model-item class="itemModel" prop="serialNumber">
<a-select :placeholder="$t('PleaseSelect')+$t('regulationNo')"
optionFilterProp="label"
@change="serialNumberChange"
showSearch
v-model="formInline.bussDocumentLibraryId">
<a-select-option v-for="(item, key) in projectNameList"
:label="item.serialNumber"
:key="key"
:value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.serialNumber ">
<span style="display: inline-block;width: 100%"
:title=" item.serialNumber ">
{{ item.serialNumber}}
</span>
</a-select-option>
@@ -93,7 +97,52 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item
class="itemModel"
:prop="'dataList.'+index+'.configItem'"
:rules="[{ required: true, message: $t('configurationItem') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('configurationItem') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]"
>
<a-input class="box-input"
v-model="item.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
<!-- <j-dict-select-tag class="box-input" v-model="item.configItem"-->
<!-- @input="handleInput('dataList.'+index+'.configItem')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.dutyTerritory'"
:rules="[{ required: true, message: $t('areaOfResponsibility') + $t('cannotEmpty'), trigger: 'change'},]"
>
<j-dict-select-tag class="box-input" v-model="item.dutyTerritory"
@input="handleInput('dataList.'+index+'.dutyTerritory')"
@changeQuery="dutyHandleChange(index)"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
@@ -145,65 +194,76 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.dutyTerritory'"
:rules="[{ required: true, message: $t('areaOfResponsibility') + $t('cannotEmpty'), trigger: 'change'},]"
:prop="'dataList.'+index+'.sdt'"
:rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]"
>
<j-dict-select-tag class="box-input" v-model="item.dutyTerritory"
@input="handleInput('dataList.'+index+'.dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
optionFilterProp="label"
showSearch
@change="handleInput('dataList.'+index+'.sdt')"
v-model="item.sdt">
<a-select-option v-for="(val, key) in item.engineeringInterfacePersonList"
:label="val.name"
:key="key"
:value="val.value">
<span style="display: inline-block;width: 100%"
:title=" val.name ">
{{ val.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
<span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div>
<a-form-model-item class="itemModel-multi"
:prop="'dataList.'+index+'.sdtName'"
:rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]"
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.endTime'"
:rules="[{ required: true, message: $t('closingDate') + $t('cannotEmpty'), trigger: 'change'},]"
>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson'),subscript:index}"
:personneQuery="item"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="item.sdtName"/>
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange({db_field_name:'endTime'},index)"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="item.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel-multi"
:prop="'dataList.'+index+'.dutyPersonName'"
:rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]"
>
<PersonnelSelection
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}"
:personneQuery="item"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="item.dutyPersonName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel-multi"-->
<!-- :prop="'dataList.'+index+'.dutyPersonName'"-->
<!-- :rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]"-->
<!-- >-->
<!-- <PersonnelSelection-->
<!-- :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}"-->
<!-- :personneQuery="item"-->
<!-- :isSingleChoice="true"-->
<!-- @change="PersonnelSelectionChange"-->
<!-- :disabled="disabled"-->
<!-- v-model="item.dutyPersonName"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
</div>
</div>
@@ -240,7 +300,48 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item
class="itemModel"
:prop="'configItem'"
>
<a-input class="box-input"
v-model="formInline.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.configItem"-->
<!-- @input="handleInput('configItem')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dutyTerritory'"
>
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
@changeQuery="handleChange"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
@@ -260,7 +361,6 @@
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
@@ -290,17 +390,25 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dutyTerritory'"
:prop="'sdt'"
>
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
optionFilterProp="label"
showSearch
v-model="formInline.sdt">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:label="item.name"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%"
:title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
@@ -308,18 +416,19 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
<span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div>
<a-form-model-item class="itemModel-multi"
:prop="'sdtName'"
<a-form-model-item class="itemModel"
:prop="'endTime'"
>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson')}"
:personneQuery="formInline"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="formInline.sdtName"/>
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange({db_field_name:'endTime'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
@@ -339,6 +448,7 @@
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}"
:personneQuery="formInline"
:isSingleChoice="true"
v-if="visible"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="formInline.dutyPersonName"/>
@@ -377,6 +487,7 @@
import uploadFile from '@/components/uploadFile/file'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default {
name: 'addModel',
@@ -437,7 +548,7 @@
trigger: 'change'
}
],
sdtName: [
sdt: [
{
required: true,
message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'),
@@ -450,6 +561,21 @@
message: this.$t('personLiable') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
endTime: [
{
required: true,
message: this.$t('closingDate') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
configItem: [
{ required: true, message: this.$t('configurationItem') + this.$t('cannotEmpty'), trigger: 'blur' },
{
max: 300,
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
},
disabled: false,
@@ -462,7 +588,8 @@
add: '/project/projectCertificationInventoryEO/batchAdd',
edit: '/project/projectCertificationInventoryEO/edit',
list: '/project/projectLawsInventoryEO/list'
}
},
engineeringInterfacePersonList: []
}
},
mounted() {
@@ -471,8 +598,20 @@
},
methods: {
...mapGetters(['userInfo']),
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
dateChange(item, index) {
if (index) {
this.formInline.dataList[index][item.db_field_name] = this.formInline.dataList[index][item.db_field_name] ? moment(this.formInline.dataList[index][item.db_field_name]).format('YYYY-MM-DD') : ''
} else {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
}
},
getDeliverableTree() {
getAction('/sys/category/getDeliverableTree', {}).then((res) => {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
@@ -493,15 +632,19 @@
})
},
editModel(value) {
this.formInline = {}
// this.formInline = {}
this.visible = true
this.formInline = value
if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',')
this.formInline = JSON.parse(JSON.stringify(value))
// if (this.formInline.deliverableType) {
// this.formInline.deliverableType = this.formInline.deliverableType.split(',')
// }
if (value.dutyTerritory) {
this.queryPersonByProject(value.dutyTerritory)
}
this.getRegulationNo()
this.title = this.$t('edit')
this.$nextTick(() => {
this.formInline = {...this.formInline}
this.$refs.ruleForm.clearValidate()
})
},
@@ -527,6 +670,7 @@
url = this.url.add
Action = postAction
query.dataList.forEach(val => {
delete val.engineeringInterfacePersonList
Object.keys(val).forEach(res => {
if (val[res] && val[res] instanceof Array) {
val[res] = val[res].join(',')
@@ -618,8 +762,37 @@
let content = this.projectNameList.filter(res => {
return res.id === value
})
this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
if (content && content.length > 0) {
this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
}
},
handleChange(value) {
this.formInline.sdt = undefined
this.queryPersonByProject(this.formInline.dutyTerritory)
},
dutyHandleChange(index) {
this.formInline.dataList[index].sdt = undefined
this.formInline = {... this.formInline}
this.queryPersonByProject(this.formInline.dataList[index].dutyTerritory, index)
},
queryPersonByProject(row, index) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row
}
getAction('/project/projectRelatedPersonnel/queryPersonByProjectId', query).then((res) => {
if (res.success) {
if (this.formInline.id) {
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || [] //工程接口人
} else {
this.$nextTick(()=>{
this.formInline.dataList[index].engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || []
this.formInline = {...this.formInline}
})
}
}
})
}
}
}
@@ -17,19 +17,15 @@
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('configurationItem')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.configItem">
<a-select-option v-for="(item, key) in configurationItemList"
:key="item.key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<a-input class="box-input"
v-model="formInline.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.configItem"-->
<!-- @input="handleInput('configItem')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -41,6 +37,7 @@
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
@changeQuery="handleChange"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -58,13 +55,15 @@
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
class="box-input"
allowClear
optionFilterProp="label"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.sdt">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="item.key"
:label="item.name"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
@@ -74,15 +73,20 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel-multi">
<PersonnelSelection :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}"
:isSingleChoice="true"
:personneQuery="formInline"
v-if="visible"
@change="PersonnelSelectionChange"
v-model="formInline.dutyPersonName"/>
<!-- tree-checkable-->
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
</div>
</a-col>
@@ -91,22 +95,49 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
<span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'endTime'"
>
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange({db_field_name:'endTime'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-if="roleSwitchingCode == 2">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('CertificationProgress')">{{$t('CertificationProgress')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.deliverableType">
<a-select-option v-for="(item, key) in typeOfDeliverablesList"
:key="item.key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<j-dict-select-tag class="box-input" v-model="formInline.certificationProgress"
@input="handleInput('certificationProgress')"
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
:type="'select'"
:triggerChange="false" :dictCode="'certification_progress'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="name == $t('BatchSetting') && roleSwitchingCode == 2">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'certificationProgressRemark'">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('remarks')"
v-model="formInline.certificationProgressRemark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
@@ -122,7 +153,7 @@
export default {
name: 'batSetting',
props: ['url'],
props: ['url', 'roleSwitchingCode'],
components: {
PersonnelSelection
},
@@ -136,14 +167,29 @@
configurationItemList: [],
engineeringInterfacePersonList: [],
typeOfDeliverablesList: [],
name: ''
name: '',
DeliverableTreeList: []
}
},
mounted() {
},
methods: {
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
edit(data, name) {
this.visible = true
this.getDeliverableTree()
this.$nextTick(() => {
this.ids = data || []
this.formInline = {}
@@ -163,12 +209,24 @@
},
handleOkOne() {
let ids = JSON.parse(JSON.stringify(this.ids))
let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) {
formInline[res] = formInline[res].join(',')
}
})
let query = {
ids: ids.join(','),
...this.formInline
...formInline
}
let url = ''
this.confirmLoading = true
postAction(this.url.setBatch, query).then((res) => {
if (this.name == this.$t('changeSetting')) {
url = '/project/projectCertificationInventoryEO/updateConfigItemBatch'
} else {
url = this.url.setBatch
}
postAction(url, query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
@@ -217,6 +275,21 @@
},
dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
},
handleChange(value) {
this.formInline.sdt = undefined
this.queryPersonByProject(this.formInline.dutyTerritory)
},
queryPersonByProject(row) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row
}
getAction('/project/projectRelatedPersonnel/queryPersonByProjectId', query).then((res) => {
if (res.success) {
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || [] //工程接口人
}
})
}
}
}
@@ -40,54 +40,57 @@
<script>
import { getAction, postAction } from '@/api/manage'
export default {
name: 'modifyHistoryList',
data() {
return {
visible:false,
dataList:[],
confirmLoading:false,
loading:false,
visible: false,
dataList: [],
confirmLoading: false,
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
url:{
list:'',
projectCertificationInventoryId: '',
url: {
list: '/project/projectCertificationInventoryLogEO/page'
},
columns:[
columns: [
{
title: this.$t('Operator'),
dataIndex: 'Operator',
dataIndex: 'createBy',
align: 'left',
ellipsis: true,
width: 228
width: 108
},
{
title: this.$t('operationTime'),
dataIndex: 'operationTime',
dataIndex: 'createTime',
align: 'left',
ellipsis: true,
width: 228
width: 148
},
{
title: this.$t('OperationContent'),
dataIndex: 'OperationContent',
dataIndex: 'content',
align: 'left',
ellipsis: true,
width: 228
},
],
width: 528
}
]
}
},
mounted() {
},
methods:{
handleCancel(){
this.visible = false
methods: {
handleCancel() {
this.visible = false
},
getList() {
getList(id) {
this.pageNo = 1
this.visible = true
this.projectCertificationInventoryId = id
this.replacePage()
},
onChange(page, pageSize) {
@@ -99,13 +102,14 @@
this.pageSize = pageSize
this.replacePage()
},
replacePage(){
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
projectCertificationInventoryId: this.projectCertificationInventoryId
}
this.loading = true
postAction(this.url.list, query).then((res) => {
getAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
@@ -116,7 +120,7 @@
this.loading = false
}
})
},
}
}
}
</script>
@@ -56,7 +56,7 @@
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</a-drawer>
</template>
@@ -95,17 +95,19 @@
loading: false,
pageNo: 1,
pageSize: 10,
total: 0
total: 0,
ids:'',
}
},
mounted() {
},
methods: {
transferModel() {
transferModel(ids) {
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
this.ids = ids.join(',')
this.replacePage()
},
searchQuery() {
@@ -151,49 +153,31 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit(flag) {
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = []
// postAction('project/projectLawsInventoryEO/add', {
// dummyInventoryBaseId: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
// flag: flag
// }).then((res) => {
// if (res.success) {
// this.confirmLoading = false
// // this.$message.success(this.$t('OperationSuccessful'))
// // this.visible = false
// this.selectedRowKeys = []
// this.$emit('transferListForm',selectedRowKeys.join(','))
// } else {
// // if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') {
// // this.confirmLoading = false
// // this.getAdd()
// // return
// // }
// this.$message.warning(this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
postAction('/project/projectCertificationInventoryEO/citeDeliverable', {
projectCertificationInventoryIds: this.ids,
projectLibraryId: this.$route.query.id,
citeProjectLibraryId: selectedRowKeys.join(',')
}).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.$emit('referenceDeliverablesListForm')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
getAdd() {
let _this = this
this.$confirm({
content: _this.$t('TheDoesNotContainData'),
onOk() {
_this.handleSubmit('1')
}
})
}
}
}
</script>
@@ -1,76 +1,84 @@
<template>
<a-drawer
:title="$t('Transfer')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('VirtualListName')">
<span>{{$t('VirtualListName')}}</span>
<div>
<a-drawer
:title="$t('Transfer')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('VirtualListName')">
<span>{{$t('VirtualListName')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')"
v-model="queryParam.name"></j-input>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')"
v-model="queryParam.name"></j-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:loading="loading">
</a-row>
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:loading="loading">
</a-table>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</a-table>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</a-drawer>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}
</a-button>
</div>
</a-drawer>
<transferListvirtal :url="url" @transferListFormHomo="transferListFormHomo" ref="transferListvirtalRef"/>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import transferListvirtal from './transferListvirtal'
export default {
name: 'transferList',
components: {},
components: {
transferListvirtal
},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -150,7 +158,7 @@
...this.queryParam
}
this.loading = true
postAction('/project/projectLawsInventoryEO/getPageInfoDummy', query).then((res) => {
getAction('/authDummy/authDummyInventoryBaseEO/page', query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
@@ -160,6 +168,11 @@
}
})
},
transferListFormHomo() {
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListForm')
},
onSelectChange(value) {
this.selectedRowKeys = value
if (this.selectedRowKeys.length > 1) {
@@ -168,6 +181,7 @@
},
handleCancel() {
this.visible = false
this.selectedRowKeys = []
this.$emit('visible')
},
handleSubmit(flag) {
@@ -175,8 +189,9 @@
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = []
// this.$emit('transferListForm',selectedRowKeys.join(','))
this.$refs.transferListvirtalRef.transferModel(selectedRowKeys.join(','))
// this.selectedRowKeys = []
// postAction('project/projectLawsInventoryEO/add', {
// dummyInventoryBaseId: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
@@ -0,0 +1,314 @@
<template>
<a-drawer
:title="$t('Transfer')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></j-input>
</div>
</a-col>
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('category')">
<span>{{$t('category')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('category')"
v-model="queryParam.category"></j-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<a-table
:columns="columns"
rowKey="id"
:scroll="{x: 800,y:600}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:'' }"
:loading="loading">
</a-table>
<!-- <div class="page" v-if="dataList.length > 0">-->
<!-- <a-pagination-->
<!-- :show-total="total => $t('total')+` ${total} `+$t('strip')"-->
<!-- show-quick-jumper-->
<!-- show-size-changer-->
<!-- :page-size.sync="pageSize"-->
<!-- :total="total"-->
<!-- :current="pageNo"-->
<!-- @change="onChange"-->
<!-- @showSizeChange="SizeChange"-->
<!-- />-->
<!-- </div>-->
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
export default {
name: 'transferList',
components: {
globalAdvancedQuery
},
props: ['url'],
data() {
return {
visible: false,
queryParam: {},
confirmLoading: false,
selectedRowKeys: [],
columns: [
{
title: this.$t('category'),
align: 'left',
dataIndex: 'category',
width: 150,
ellipsis: true,
},
{
title: this.$t('inspectionItems'),
align: 'left',
dataIndex: 'inspectionItem',
width: 150,
ellipsis: true,
scopedSlots: { customRender: 'inspectionItems' }
},
{
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 150,
ellipsis: true,
},
{
title: this.$t('standard'),
align: 'left',
dataIndex: 'serialNumber',
width: 150,
ellipsis: true,
},
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritoryName',
width: 200,
ellipsis: true,
},
{
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'deliverableTypeName',
width: 200,
ellipsis: true,
},
],
fieldList: [
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: 'string',
value: 'inspectionItem',
text: this.$t('inspectionItems'),
},
{
type: '',
value: 'dutyTerritory',
text: this.$t('areaOfResponsibility'),
dictCode: 'duty_territory'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
],
dataList: [],
content: [],
loading: false,
dummyInventoryBaseId:'',
pageNo: 1,
pageSize: 10,
total: 0
}
},
mounted() {
},
methods: {
transferModel(id) {
this.visible = true
this.dummyInventoryBaseId = id
this.queryParam = {}
this.selectedRowKeys = []
this.replacePage()
},
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.replacePage()
},
replacePage() {
let query = {
// pageNo: this.pageNo,
// pageSize: this.pageSize,
...this.queryParamQuery,
...this.queryParam,
authDummyInventoryBaseId: this.dummyInventoryBaseId
}
this.loading = true
getAction('/authDummy/authDummyInventoryInfoEO/list', query).then((res) => {
if (res.success) {
this.dataList = res.result || []
this.loading = false
} else {
this.loading = false
}
})
},
onSelectChange(value) {
this.selectedRowKeys = value
// if (this.selectedRowKeys.length > 1) {
// this.selectedRowKeys.shift()
// }
},
handleCancel() {
this.visible = false
},
handleSubmit(flag) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
postAction('project/projectCertificationInventoryEO/callAdd', {
authDummyInventoryBaseId: this.dummyInventoryBaseId,
projectLibraryId: this.$route.query.id,
authDummyInventoryInfoIds: selectedRowKeys.join(','),
}).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListFormHomo')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
}
}
</script>
<style scoped>
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index: 100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 20%;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.box-button {
height: 38px;
}
</style>
@@ -54,10 +54,10 @@
<a-button class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
<a-button class="box-button" style="margin-left: 8px"
@click="searchReset">{{ $t('reset') }}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ !toggleSearchStatus ? $t('open') : $t('away') }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</a-col>
</span>
</a-row>
@@ -280,18 +280,49 @@
</a>
</span>
<span slot="DeliverablesResult" slot-scope="text,record,index">
<a-button type="primary" class="button-text"
v-if="record.flowStatus == 'Results to be submitted'"
@click="clickButtonToUpload('deliveryResult',index)">
<span v-if="(record.flowStatus == 'Results to be submitted' &&
record.dutyPersonName == userInfoQuery.username && roleSwitchingCode == 20) ||
record.flowStatus == 'Results to be submitted' && roleSwitchingCode == 21">
<a-button type="primary" class="button-text"
v-if="record.valueType == 'file'"
@click="clickButtonToUpload('deliveryResult',index)">
{{ (record.deliveryResult === 'null' || record.deliveryResult === '' ||
record.deliveryResult == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-button>
<a-input class="box-input-index"
v-else-if="record.valueType == 'text'"
:maxLength="200"
@blur="deliveryBlur"
onkeyup="this.value=this.value.replace(/(^\s+)|(\s+$)/g, '')"
v-model.trim="record.deliveryResult"
:placeholder="$t('PleaseEnter')"/>
<a-radio-group v-else-if="record.valueType == 'select'"
@change="deliveryChange"
v-model="record.deliveryResult">
<a-radio :value="'1'">
{{$t('yes')}}
</a-radio>
<a-radio :value="'2'">
{{$t('not')}}
</a-radio>
</a-radio-group>
<span v-else>--</span>
</span>
<span v-else>
<span class="viewFile"
@click="viewFileClick(record.deliveryResult)" v-if="record.deliveryResult">
@click="viewFileClick(record.deliveryResult)"
v-if="record.deliveryResult && record.valueType == 'file'">
{{$t('viewFile')}}
</span>
<span :title="record.deliveryResult"
v-else-if="record.deliveryResult && record.valueType == 'text'">
{{record.deliveryResult}}
</span>
<span v-else-if="record.deliveryResult && record.valueType == 'select'">
{{record.deliveryResult == '1' ? $t('yes') :$t('not')}}
</span>
<span v-else>--</span>
</span>
</span>
@@ -347,7 +378,7 @@
</div>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<certificationDirectory :isDisplayNum="isDisplayNum" :url="url" ref="certificationDirectoryRef"/>
<batSetting :url="url" ref="batSettingRef" @batSettingForm="batSettingForm"/>
<batSetting :url="url" ref="batSettingRef" :roleSwitchingCode="roleSwitchingCode" @batSettingForm="batSettingForm"/>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
<modifyHistory ref="modifyHistoryRef"/>
<uploadFile ref="uploadFile" :isMultiple="true" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -355,41 +386,41 @@
<referenceDeliverablesList ref="referenceDeliverablesListRef" @referenceDeliverablesListForm="transferListForm"/>
<SelectedBy ref="SelectedByRef" :title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy>
<viewFileModel ref="viewFileModelRef"/>
<a-modal
:title="listTitle"
:width="500"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text-index">
<div class="title-text-index">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
</div>
<a-form-model-item class="itemModel" prop="endTime">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@change="dateChange({db_field_name:'endTime'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</a-modal>
<!-- <a-modal-->
<!-- :title="listTitle"-->
<!-- :width="500"-->
<!-- :visible="visible"-->
<!-- :confirm-loading="confirmLoading"-->
<!-- :maskClosable="false"-->
<!-- @ok="handleOk"-->
<!-- @cancel="handleCancel"-->
<!-- >-->
<!-- <a-spin :spinning="confirmLoading">-->
<!-- <a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text-index">-->
<!-- <div class="title-text-index">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="endTime">-->
<!-- <a-date-picker class="box-input"-->
<!-- :placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"-->
<!-- @change="dateChange({db_field_name:'endTime'})"-->
<!-- format="YYYY-MM-DD"-->
<!-- :disabledDate="disabledDate"-->
<!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
<!-- v-model="formInline.endTime"-->
<!-- style="width: 100%"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-form-model>-->
<!-- </a-spin>-->
<!-- </a-modal>-->
<a-modal
:title="$t('roleSwitching')"
:width="500"
@@ -473,7 +504,50 @@
'NA': 'notInvolvedColor',
'Not start': 'submittedColor'
},
fieldList: [],
fieldList: [
{
type: 'string',
value: 'category',
text: this.$t('category')
},
{
type: 'string',
value: 'inspectionItem',
text: this.$t('inspectionItems')
},
{
type: 'string',
value: 'configItem',
text: this.$t('configurationItem')
},
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: 'string',
value: 'serialNumber',
text: this.$t('standardNo')
},
{
type: 'Personnel',
value: 'sdt',
valueName: 'sdtName',
text: this.$t('engineeringInterfacePerson')
},
{
type: 'Personnel',
value: 'dutyPerson',
valueName: 'dutyPersonName',
text: this.$t('personLiable')
},
{
type: 'date',
value: 'endTime',
text: this.$t('closingDate')
}
],
disabled: false,
queryParamQuery: {},
formInline: {},
@@ -589,7 +663,7 @@
align: 'left',
dataIndex: 'deliveryResult',
width: 180,
// ellipsis: true,
ellipsis: true,
scopedSlots: { customRender: 'DeliverablesResult' }
},
{
@@ -651,13 +725,15 @@
isDisplayNum: 2,
long: '',
toDoIds: [],
toDoNotConditions: []
toDoNotConditions: [],
userInfoQuery: {}
}
},
mounted() {
// this.getList()
this.long = localStorage.getItem('language') || 'zh-cn'
this.loading = true
this.userInfoQuery = this.userInfo()
this.getProcessStatus()
this.getRoleByUserId(() => {
this.getAndUserId()
@@ -718,7 +794,7 @@
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
@@ -726,7 +802,7 @@
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
this.getList()
},
searchQuery() {
this.pageNo = 1
@@ -779,6 +855,11 @@
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
@@ -821,42 +902,46 @@
downloadFile(this.url.exportData, this.$route.query.projectName + '.zip', query, this.Deselect)
},
handleDel() {
let _this = this
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let _this = this
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys))
let isTrue = true
// for (let i = 0; i < this.dataSource.length; i++) {
// for (let j = 0; j < selectedRowKeys.length; j++) {
// if (this.dataSource[i].id == selectedRowKeys[j]) {
// if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
// isTrue = true
// } else {
// isTrue = false
// this.$message.warning(this.$t('onlyDeleted'))
// return
// }
// }
// }
// }
if (isTrue) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'List to be released' ||
this.selectedRowKeysList[i].flowStatus == 'Review and pass') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataWithProcessStatusDeleted')
}
if (ids && ids.length > 0) {
this.$confirm({
content: _this.$t('ConfirmBatchDeletion'),
onOk() {
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
deleteAction(_this.url.deleteBatch, {
ids: idList.join(','),
ids: ids.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.selectedRowKeysList = []
_this.getList()
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else {
_this.$message.warning(res.message)
}
})
}
})
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
@@ -897,46 +982,93 @@
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
},
releaseClick() {
this.listTitle = this.$t('Deadline')
if (this.selectedRowKeysList.length < 1) {
this.$message.warning(this.$t('selectLeastOne'))
// this.listTitle = this.$t('Deadline')
// if (this.selectedRowKeysList.length < 1) {
// this.$message.warning(this.$t('selectLeastOne'))
// } else {
// this.visible = true
// }
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'List to be released' ||
this.selectedRowKeysList[i].flowStatus == 'Certification returned') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataListReleasedAndCertificationReturnCanSelected')
}
if (ids && ids.length > 0) {
this.releaseData(ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.visible = true
this.$message.warning(this.$t('selectLeastOne'))
}
},
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let selectedRowKeys = []
this.selectedRowKeysList.forEach(res => {
selectedRowKeys.push(res.id)
})
let query = {
ids: selectedRowKeys.join(','),
projectLibraryId: this.$route.query.id,
...this.formInline
}
this.confirmLoading = true
postAction('/project/projectCertificationInventoryEO/issue', query).then((res) => {
releaseData(ids, notConditions, data) {
let _this = this
this.$confirm({
content: _this.$t('confirmRelease'),
onOk() {
postAction('/project/projectCertificationInventoryEO/issue', {
ids: ids.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.confirmLoading = false
this.getList()
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.selectedRowKeysList = []
_this.getList()
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else {
this.$message.warning(res.message)
this.confirmLoading = false
_this.$message.warning(res.message)
}
this.detailedSuccessList = []
})
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
},
// handleOk() {
// this.$refs.ruleForm.validate(valid => {
// if (valid) {
// let selectedRowKeys = []
// this.selectedRowKeysList.forEach(res => {
// selectedRowKeys.push(res.id)
// })
// let query = {
// ids: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
// ...this.formInline
// }
// this.confirmLoading = true
// postAction('/project/projectCertificationInventoryEO/issue', query).then((res) => {
// if (res.success) {
// this.$message.success(this.$t('OperationSuccessful'))
// this.visible = false
// this.selectedRowKeys = []
// this.confirmLoading = false
// this.getList()
// } else {
// this.$message.warning(res.message)
// this.confirmLoading = false
// }
// this.detailedSuccessList = []
// })
// }
// })
// },
// handleCancel() {
// this.formInline = {}
// this.visible = false
// },
//撤回
withdrawClick() {
@@ -1085,8 +1217,8 @@
},
transferListForm() {
this.pageNo = 1
this.getList()
this.selectedRowKeys = []
this.getList()
},
batSettingForm() {
this.pageNo = 1
@@ -1103,22 +1235,26 @@
},
deleteLib(val) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
if (val.flowStatus == 'List to be released' || val.flowStatus == 'Review and pass') {
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
} else {
this.$message.warning(this.$t('onlyDataWithProcessStatusDeleted'))
}
},
modifyHistoryClick() {
this.$refs.modifyHistoryRef.getList()
modifyHistoryClick(row) {
this.$refs.modifyHistoryRef.getList(row.id)
},
getRoleByUserId(callback) {
getAction('/project/projectCertificationInventoryEO/getRoleByUserId', { projectLibraryId: this.$route.query.id }).then((res) => {
@@ -1187,6 +1323,8 @@
this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
this.selectedRowKeysList = []
this.selectedRowKeys = []
this.getList()
this.$emit('getRoleSwitch', this.roleSwitchingCode)
} else {
@@ -1217,7 +1355,7 @@
//引用交付物
referenceDeliverablesClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.referenceDeliverablesListRef.transferModel()
this.$refs.referenceDeliverablesListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
@@ -1326,6 +1464,12 @@
this.dataSource = [...this.dataSource]
this.preservationClick()
},
deliveryBlur() {
this.preservationClick()
},
deliveryChange() {
this.preservationClick()
},
CertificationProgressClick(val) {
let item = JSON.parse(JSON.stringify(val))
item.roleCode = this.roleSwitchingCode
@@ -1,28 +1,28 @@
<template>
<a-drawer
:title="$t('add')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<div>
<a-drawer
:title="$t('add')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('regulationNo')">{{$t('regulationNo')}}</span>
<span class="title-text-text" :title="$t ('regulationNo')">{{$t('regulationNo')}}</span>
</div>
<a-form-model-item class="itemModel" prop="regulationNo">
<j-dict-select-tag class="box-input"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'"
:triggerChange="false"/>
<a-form-model-item class="itemModel" prop="serialNumber">
<a-input @click.native="serialNumberClick"
class="box-input"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
v-model="formInline.serialNumber"></a-input>
</a-form-model-item>
</div>
</a-col>
@@ -32,12 +32,14 @@
<span class="Required">*</span>
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel" prop="dutyTerritory">
<j-dict-select-tag class="box-input"
:disabled="disabled"
@input="handleInput('dutyTerritory')"
v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false"/>
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
@@ -49,9 +51,9 @@
<span class="Required">*</span>
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel" prop="wvtaId">
<a-input class="box-input"
v-model='formInline.dddd'
v-model='formInline.wvtaId'
:disabled="disabled"
:placeholder="$t('PleaseEnter')+'WVTA ID'"/>
</a-form-model-item>
@@ -59,124 +61,182 @@
</a-col>
</a-row>
<div v-for="(item,index) in formInline.dataList" :key="index">
<div class="header-text">
<span>{{$t('itemInformation')}}</span>
<div class="box-title-text" style="margin-left: 10px">
<a-button @click='addClick(index)' style="margin-right: .8rem" icon="plus">
</a-button>
<a-button v-if="formInline.dataList.length > 1" @click="deleteClick(index)" type="primary" icon="minus">
</a-button>
<div class="header-text">
{{$t('itemInformation')}}
<a-icon class="icon-text" @click="addClick(index)" type="plus-circle"/>
<a-icon class="icon-text" v-if="formInline.dataList.length > 1" @click="deleteClick(index)"
type="minus-circle"/>
</div>
</div>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.category'"
:rules="[{ required: true, message: $t('category') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('category') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"
>
<a-input class="box-input"
v-model="item.category"
:placeholder="$t('PleaseEnter')+$t('category')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="category">
<a-input class="box-input"
v-model="item.category"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('category')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.inspectionItem'"
:rules="[{ required: true, message: $t('inspectionItems') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('inspectionItems') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"
>
<a-input class="box-input"
v-model="item.inspectionItem"
:placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="inspectionItems">
<j-dict-select-tag class="box-input"
v-model="item.inspectionItems"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('inspectionItems')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.configItem'"
:rules="[{ required: true, message: $t('configurationItem') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('configurationItem') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]">
<a-input class="box-input"
v-model="item.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="Deliverables">
<j-dict-select-tag class="box-input"
v-model="item.Deliverables"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.deliverableType'"
:rules="[{ required: true, message: $t('typeOfDeliverables') + $t('cannotEmpty'), trigger: 'change'},]"
>
<a-tree-select
tree-node-filter-prop="title"
v-model="item.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</div>
</a-form-model>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
<codeNumber ref="codeNumber" @regulation="regulation" />
</div>
</template>
<script>
import codeNumber from './codeNumber'
import { getAction, postAction } from '@/api/manage'
import { mapGetters } from 'vuex'
export default {
name:"addModel",
props: ['url'],
components:{
codeNumber
},
data() {
return {
visible: false,
disabled: false,
formInline: {},
confirmLoading: false,
projectNameList: [],
DeliverableTreeList: [],
rules: {
regulationNo: [
// {
// required: true,
// message: this.$t('regulationNo') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
]
serialNumber: [
{
required: true,
message: this.$t('entryName') + this.$t('regulationNo'),
trigger: 'change'
}
],
dutyTerritory: [
{
required: true,
message: this.$t('entryName') + this.$t('areaOfResponsibility'),
trigger: 'change'
}
],
wvtaId: [
{
required: true,
message: 'WVTA ID' + this.$t('regulationNo'),
trigger: 'blur'
},
{
max: 300,
message: 'WVTA ID' + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
},
}
},
mounted() {
this.getDeliverableTree()
this.getRegulationNo()
},
methods: {
...mapGetters(['userInfo']),
addModel() {
this.visible = true
this.formInline = {}
this.formInline.dataList = [{}]
this.formInline = { ...this.formInline }
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate()
this.$refs.codeNumber.number()
})
},
handleCancel() {
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
let query = JSON.parse(JSON.stringify(this.formInline))
query.dataList.forEach(val => {
Object.keys(query).forEach(res => {
if (query[res] && query[res] instanceof Array) {
query[res] = query[res].join(',')
}
})
})
this.confirmLoading = true
postAction(this.url.addModel, query).then((res) => {
if (res.success) {
@@ -199,6 +259,46 @@ export default {
deleteClick(index) {
this.formInline.dataList.splice(index, 1)
this.formInline = { ...this.formInline }
},
getRegulationNo() {
let query = {
projectLibraryId: this.$route.query.id,
roleCode: 0
}
getAction(this.url.number, query).then((res) => {
if (res.success) {
this.projectNameList = res.result || []
} else {
this.projectNameList = []
}
})
},
serialNumberChange(value) {
let content = this.projectNameList.filter(res => {
return res.id === value
})
this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
},
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
serialNumberClick(){
this.$refs.codeNumber.add()
},
regulation(item,data) {
this.formInline.serialNumber = item
this.formInline.bussDocumentLibraryId = data
this.$nextTick(()=>{
this.formInline = {... this.formInline}
this.$refs.ruleForm.validateField(['serialNumber'])
})
}
}
}
@@ -246,12 +346,7 @@ export default {
.header-text {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
display: flex;
font-weight: 500;
}
.drawer-bootom-button {
@@ -266,4 +361,9 @@ export default {
background: #fff;
border-radius: 0 0 2px 2px;
}
.icon-text {
font-size: 16px;
margin-right: 4px;
}
</style>
@@ -18,7 +18,6 @@
<a-form-model-item class="itemModel-multi">
<j-dict-select-tag class="box-input"
v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -33,20 +32,19 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span>
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel-multi">
<j-multi-select-tag class="box-input"
v-model="formInline.deliverable"
@input="handleInput('deliverable')"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
<!-- @input="handleInput('attestationType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
<a-form-model-item class="itemModel">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
</div>
</a-col>
@@ -56,7 +54,7 @@
</template>
<script>
import { postAction } from '../../../api/manage'
import { getAction, postAction } from '../../../api/manage'
export default {
name: 'batSetting',
@@ -68,10 +66,11 @@ export default {
formInline: {},
rules: {},
ids: [],
DeliverableTreeList: [],
}
},
mounted() {
this.getDeliverableTree()
},
methods: {
edit(data) {
@@ -83,8 +82,10 @@ export default {
},
handleOk() {
if (this.formInline.dutyTerritory) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOnTwo()
} else {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOkOne()
}
},
@@ -148,10 +149,19 @@ export default {
this.formInline = {}
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
// handleInput(value) {
// this.$nextTick(() => {
// this.formInline = { ...this.formInline }
// this.$refs.ruleForm.validateField([value])
// })
// },
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
}
@@ -0,0 +1,357 @@
<template>
<div>
<!-- <a-input allowClear-->
<!-- @click="add"-->
<!-- :placeholder="$t('PleaseSelect')+$t('regulationNo')"-->
<!-- v-model="regulation"></a-input>-->
<a-drawer
:title="$t('regulationNo')"
:width="1000"
:visible="visible"
placement="right"
:maskClosable="false"
:closable="true"
@close="handleCancel"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serial_number"></a-input>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.title"></a-input>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('status')">
<span>{{$t('status')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.state"
:placeholder="$t('PleaseSelect')+$t('status')"
:type="'select'"
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div style="width: 100%">
<a-table
:columns="columns"
:components="drag(columns,'columns')"
rowKey="id"
:scroll="{x: 1200}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:loading="loading">
</a-table>
</div>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'codeNumber',
components: {
globalAdvancedQuery
},
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
url: {
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy',
},
selectedRowList: [],
visible:false,
queryParam: {},
regulation: '',
confirmLoading: false,
toggleSearchStatus: false,
columns: [
{
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true,
width: 228
},
// {
// title: this.$t('status'),
// dataIndex: 'state',
// align: 'center',
// ellipsis: true
// },
// {
// title: this.$t('technicalField'),
// dataIndex: 'technology_territory',
// align: 'center',
// ellipsis: true
// },
{
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
}
// {
// title: this.$t('correspondingStandard'),
// dataIndex: 'corresponding_standard',
// align: 'center',
// ellipsis: true
// }
],
dataList: [],
selectedRowKeys: [],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
fieldList: [],
queryParamQuery: {},
queryConditionVOList: []
}
},
mounted() {
},
methods: {
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
add() {
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
this.queryConditionVOList = []
this.replacePage()
this.queryConditionInventory()
},
// number() {
// this.regulation = ''
// },
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.replacePage()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
queryConditionInventory() {
let query = {
flag: 1
}
getAction(this.url.queryConditionInventory, query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
replacePage() {
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam,
queryConditionVOList: JSON.stringify(queryConditionVOList)
}
this.loading = true
postAction(this.url.addModelList, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.dataList = []
this.total = 0
this.loading = false
}
})
},
onSelectChange(value,row) {
this.selectedRowKeys = value
this.selectedRowList = row
},
handleCancel() {
this.visible = false
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.replacePage()
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
if (this.selectedRowKeys.length < 2){
let fgid = this.selectedRowList[0].id
let regulationIndex = this.selectedRowList[0].serial_number
this.confirmLoading = false
this.visible = false
this.$emit('regulation',regulationIndex,fgid)
} else {
this.$message.warning(this.$t('OnlyOneSelected'))
this.confirmLoading = false
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
this.confirmLoading = false
}
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 100%;
height: 38px;
}
.box-button {
height: 38px;
}
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>
@@ -20,7 +20,7 @@
<a-form-model-item class="itemModel" prop="serialNumber">
<j-dict-select-tag class="box-input"
v-model="formInline.serialNumber"
:disabled="disabled"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'"
:triggerChange="false"/>
@@ -39,7 +39,7 @@
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false"/>
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
@@ -68,12 +68,10 @@
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
</div>
<a-form-model-item class="itemModel" prop="category">
<j-dict-select-tag class="box-input"
v-model="formInline.category"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('category')"
:type="'select'"
:triggerChange="false"/>
<a-input class="box-input"
v-model="formInline.category"
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('category')" />
</a-form-model-item>
</div>
</a-col>
@@ -84,12 +82,10 @@
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
</div>
<a-form-model-item class="itemModel" prop="inspectionItem">
<j-dict-select-tag class="box-input"
v-model="formInline.inspectionItem"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('inspectionItems')"
:type="'select'"
:triggerChange="false"/>
<a-input class="box-input"
v-model="formInline.inspectionItem"
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
</a-form-model-item>
</div>
</a-col>
@@ -99,15 +95,35 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item class="itemModel" prop="deliverable">
<j-dict-select-tag class="box-input"
v-model="formInline.deliverable"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
<a-form-model-item class="itemModel" prop="configItem">
<a-input class="box-input"
v-model="formInline.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel"
prop="deliverableType"
:rules="[{ required: true, message: $t('typeOfDeliverables') + $t('cannotEmpty'), trigger: 'change'},]"
>
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
</div>
</a-col>
@@ -133,6 +149,7 @@ export default {
confirmLoading: false,
formInline: {},
disabled: false,
DeliverableTreeList: [],
rules: {
serialNumber: [
{
@@ -169,6 +186,18 @@ export default {
trigger: 'change'
}
],
configItem: [
{
required: true,
message: this.$t('configurationItem') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 300,
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
deliverable: [
{
required: true,
@@ -179,6 +208,9 @@ export default {
}
}
},
mounted() {
this.getDeliverableTree()
},
methods: {
handleCancel() {
this.visible = false
@@ -187,6 +219,9 @@ export default {
this.visible = true
this.$nextTick(() => {
this.formInline = item || {}
if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',')
}
this.$refs.ruleForm.clearValidate()
})
},
@@ -194,6 +229,11 @@ export default {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) {
formInline[res] = formInline[res].join(',')
}
})
this.confirmLoading = true
postAction(this.url.editModel, formInline).then((res) => {
if (res.success) {
@@ -212,6 +252,15 @@ export default {
}
})
},
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
}
}
</script>
@@ -260,12 +260,13 @@ export default {
list: '/authDummy/authDummyInventoryInfoEO/page',
logList: '',//更新log
exportTemplate: '/authDummy/authDummyInventoryInfoEO/exportTemplate',//模板下载
exportData: '',//导出
addModel: '/authDummy/authDummyInventoryInfoEO/add',//添加
exportData: '/authDummy/authDummyInventoryInfoEO/exportData',//导出
addModel: '/authDummy/authDummyInventoryInfoEO/batchAdd',//添加
copyInfo: '/authDummy/authDummyInventoryInfoEO/copyInfoByIds',//复制
deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除
editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑
setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置
number: '/project/projectLawsInventoryEO/list',
},
queryParam: {},
orderByField: '',
@@ -285,6 +286,13 @@ export default {
ellipsis: true,
scopedSlots: { customRender: 'inspectionItems' }
},
{
title: this.$t('configurationItem'),
align: 'left',
dataIndex: 'configItem',
width: 150,
ellipsis: true,
},
{
title: 'WVTA ID',
align: 'left',
@@ -302,14 +310,14 @@ export default {
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritory',
dataIndex: 'dutyTerritoryName',
width: 200,
ellipsis: true,
},
{
title: this.$t('Deliverables'),
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'deliverable',
dataIndex: 'deliverableTypeName',
width: 200,
ellipsis: true,
},
@@ -392,6 +400,7 @@ export default {
created() {
if (this.$route.query.title == '虚拟认证清单详情') {
document.title = this.$t('virtualAuthenticationListDetails')
this.columns.splice(7,1)
} else {
document.title = this.$t('certificationListMaintenance')
}
@@ -438,7 +447,7 @@ export default {
},
//模板下载
handleModule() {
downloadFile(this.url.exportTemplate, this.$t('VirtualList') + this.$t('importTemplate') + '.xls', {})
downloadFile(this.url.exportTemplate, this.$t('VirtualAuthenticationList') + this.$t('importTemplate') + '.xls', {})
},
//调取
// transferClick() {
@@ -457,7 +466,7 @@ export default {
ids: selectedRowKeys.join(','),
dummyInventoryBaseId: this.$route.query.id
}
downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualList') + '.zip', query, this.Deselect)
downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualAuthenticationList') + '.zip', query, this.Deselect)
},
Deselect() {
this.selectedRowKeys = []
@@ -708,4 +717,7 @@ export default {
color: #000F16;
}
::v-deep .ant-table-placeholder {
margin-top: 8px!important;
}
</style>