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

This commit is contained in:
zer0Black
2022-07-03 14:51:29 +08:00
72 changed files with 4276 additions and 1072 deletions
+4
View File
@@ -1068,4 +1068,8 @@ module.exports = {
newNiONumber: 'Number',
English: 'English',
requiredParametersEmpty:'Required parameters cannot be empty',
PleaseTaskConfirmationRejected:'Please select the data whose list confirmation status is accepted and task confirmation status is not initiated or rejected',
theProjectContactEmpty:'The project contact person of cannot be empty',
pleaseSelectinitiatedOrRejected:'Please select the data whose list confirmation status is not initiated or rejected',
TheEngineerAndCertification:'The regulatory engineer and Certification Engineer of cannot be empty',
}
+6 -1
View File
@@ -681,7 +681,11 @@ module.exports = {
listConfirmation: '清单确认',
ListConfirmationDeadline: '清单确认截止时间',
dataConfirmation: '请选择清单确认状态为未发起或拒绝的数据,以及法规工程师认证工程师不为空',
pleaseSelectinitiatedOrRejected:'请选择清单确认状态为未发起或拒绝的数据',
TheEngineerAndCertification:'的法规工程师认证工程师不能为空',
taskDataConfirmation: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据,以及工程接口人不为空',
theProjectContactEmpty:'的工程接口人不能为空',
PleaseTaskConfirmationRejected:'请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据',
pleaseSelectPersonFirst: '请先选择人员',
onlyOnePersonCanBeSelected: '只能选择一个人员',
overrule: '驳回',
@@ -880,7 +884,8 @@ module.exports = {
yellowSchedule: '不符合/待追踪有可接受的方案和时间表',
greenRequirements: '绿确认符合或满足当前要求',
blueUndeterminedState: '未判断状态',
authenticationMessage: '认证消息',
authenticationMessage: '认证参数任务',
taskRegulationComplianceTask: '法规符合性任务',
accept: '接受',
refuse: '拒绝',
taskTermination: '任务终止',
@@ -178,6 +178,7 @@ export default {
this.$message.warning(this.$t('OnlyOneSelected'))
} else {
let param = {ids: this.selectedRowKeysArray, paramsManifestId:this.$route.query.id ,projectId: this.$route.query.projectId, dre:this.selectedRowKeysDate[0].username }
this.confirmLoading = true
axios({
url: '/jero-boot/params/collectManifest/updateDreBatch',
method: 'post',
@@ -199,14 +200,17 @@ export default {
_this.$message.success(_this.$t('OperationSuccessful'))
// 填写人
// 获取当前登陆人
this.confirmLoading = false
this.$emit('GetgetLoginUserType')
this.$emit('GetgetTableList')
this.$emit('areaVisibleAssignedbyflag', false)
}else{
this.confirmLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch( (error) =>{
this.confirmLoading = false
console.log(error);
});
}
@@ -18,6 +18,7 @@
<!-- -->
<div v-if="item.controlVerify == '1'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')"
v-model="item.dataValue"/>
@@ -43,7 +44,7 @@
<div v-if="item.controlVerify == '4'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
onkeyup="value=value.replace(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/g,'')"
onkeyup="(this.v=function(){this.value=this.value.replace(/[^\d\.]/g,'');}).call(this)"
:placeholder="$t('pleaseEnter')+$t('Positivefloatingpointnumber')"
v-model="item.dataValue"/>
</div>
@@ -98,7 +99,9 @@
<div v-else-if='detailDate.controlType === "2"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type === "pull"'>
<a-select v-model="item.dataValue" class='selectWid' :disabled="item.isLock == '1' ? true: false"
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class='selectWid' :disabled="item.isLock == '1' ? true: false"
allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
@@ -113,7 +116,9 @@
<div v-else-if='detailDate.controlType === "3"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' style='flex: 1' class='add-width'>
<div v-if='item.type==="pull_more"'>
<a-select v-model="item.dataValue" mode="multiple" class='selectWid'
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
mode="multiple" class='selectWid'
:disabled="item.isLock == '1' ? true: false" allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
@@ -140,7 +145,9 @@
<div v-else-if='detailDate.controlType === "5"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type==="pull"'>
<a-select v-model="item.dataValue" class='selectWid' :disabled="item.isLock == '1' ? true: false"
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class='selectWid' :disabled="item.isLock == '1' ? true: false"
allowClear>
<a-select-option v-for="(itemin, key) in item.controlValue" :key="key" :value="itemin.value">
<span style="display: inline-block;width: 100%" :title=" itemin.label ">
@@ -163,6 +170,7 @@
<!-- 无 -->
<div v-if="item.controlVerify == '1'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')"
v-model="item.dataValue"/>
@@ -170,6 +178,7 @@
<!-- 中文-->
<div v-if="item.controlVerify == '2'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')+$t('chinese')"
onkeyup="value=value.replace(/[^\u4e00-\u9fa5]/g,'')"
@@ -188,7 +197,7 @@
<div v-if="item.controlVerify == '4'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
onkeyup="value=value.replace(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/g,'')"
onkeyup="(this.v=function(){this.value=this.value.replace(/[^\d\.]/g,'');}).call(this)"
:placeholder="$t('pleaseEnter')+$t('Positivefloatingpointnumber')"
v-model="item.dataValue"/>
</div>
@@ -256,6 +265,7 @@
<!-- 无 -->
<div v-if="item.controlVerify == '1'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')"
v-model="item.dataValue"/>
@@ -263,6 +273,7 @@
<!-- 中文-->
<div v-if="item.controlVerify == '2'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')+$t('chinese')"
onkeyup="value=value.replace(/[^\u4e00-\u9fa5]/g,'')"
@@ -281,7 +292,7 @@
<div v-if="item.controlVerify == '4'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
onkeyup="value=value.replace(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/g,'')"
onkeyup="(this.v=function(){this.value=this.value.replace(/[^\d\.]/g,'');}).call(this)"
:placeholder="$t('pleaseEnter')+$t('Positivefloatingpointnumber')"
v-model="item.dataValue"/>
</div>
@@ -331,7 +342,9 @@
</div>
</div>
<div v-if='item.type==="pull_more"'>
<a-select v-model="item.dataValue" mode="multiple" class='selectWid'
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
mode="multiple" class='selectWid'
:disabled="item.isLock == '1' ? true: false" allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
@@ -359,6 +372,7 @@
<!-- 无 -->
<div v-if="item.controlVerify == '1'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')"
v-model="item.dataValue"/>
@@ -366,6 +380,7 @@
<!-- 中文-->
<div v-if="item.controlVerify == '2'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')+$t('chinese')"
onkeyup="value=value.replace(/[^\u4e00-\u9fa5]/g,'')"
@@ -384,7 +399,7 @@
<div v-if="item.controlVerify == '4'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
onkeyup="value=value.replace(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/g,'')"
onkeyup="(this.v=function(){this.value=this.value.replace(/[^\d\.]/g,'');}).call(this)"
:placeholder="$t('pleaseEnter')+$t('Positivefloatingpointnumber')"
v-model="item.dataValue"/>
</div>
@@ -446,7 +461,9 @@
<div v-else-if='detailDate.controlType === "8"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type==="pull"'>
<a-select v-model="item.dataValue" class='selectWid' :disabled="item.isLock == '1' ? true: false"
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class='selectWid' :disabled="item.isLock == '1' ? true: false"
allowClear>
<a-select-option v-for="(itemin, key) in item.controlValue" :key="key" :value="itemin.value">
<span style="display: inline-block;width: 100%" :title=" itemin.label ">
@@ -468,7 +485,9 @@
<div v-else-if='detailDate.controlType === "9"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type==="pull_more"'>
<a-select v-model="item.dataValue" mode="multiple" class='selectWid'
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
mode="multiple" class='selectWid'
:disabled="item.isLock == '1' ? true: false" allowClear>
<a-select-option v-for="(item, key) in item.controlValue" :key="key" :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
@@ -490,10 +509,12 @@
<div v-else-if='detailDate.controlType === "10"' class='add_flex'>
<div v-for='(item,index) in detailDate.list' :key='index' class='add-width'>
<div v-if='item.type==="pull"'>
<a-select v-model="item.dataValue" class='selectWid' :disabled="item.isLock == '1' ? true: false"
<a-select v-model="item.dataValue"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class='selectWid' :disabled="item.isLock == '1' ? true: false"
allowClear>
<a-select-option v-for="(itemin, key) in item.controlValue" :key="key" :value="itemin.value">
<span style="display: inline-block;width: 100%" :title=" itemin.label ">
<span style="display: inline-block;width: 100%" class="itemOption" :title=" itemin.label ">
{{ itemin.label }}
</span>
</a-select-option>
@@ -513,6 +534,7 @@
<!-- 无 -->
<div v-if="item.controlVerify == '1'">
<a-input class="box-input inputWid"
:maxLength="1000"
:disabled="item.isLock == '1' ? true: false"
:placeholder="$t('pleaseEnter')"
v-model="item.dataValue"/>
@@ -521,6 +543,7 @@
<div v-if="item.controlVerify == '2'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
:maxLength="1000"
:placeholder="$t('pleaseEnter')+$t('chinese')"
onkeyup="value=value.replace(/[^\u4e00-\u9fa5]/g,'')"
v-model="item.dataValue"/>
@@ -538,7 +561,7 @@
<div v-if="item.controlVerify == '4'">
<a-input class="box-input inputWid"
:disabled="item.isLock == '1' ? true: false"
onkeyup="value=value.replace(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/g,'')"
onkeyup="(this.v=function(){this.value=this.value.replace(/[^\d\.]/g,'');}).call(this)"
:placeholder="$t('pleaseEnter')+$t('Positivefloatingpointnumber')"
v-model="item.dataValue"/>
</div>
@@ -694,6 +717,13 @@
.ant-table td {
white-space: nowrap;
}
.selectWid .ant-select-selection--multiple {
overflow: auto;
}
.selectWid .ant-select-selection--multiple::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
</style>
<style lang="less" scoped>
.box {
@@ -747,4 +777,12 @@
.ant-select-disabled{
color: rgba(0, 0, 0, 0.65);
}
.itemOption {
display: inline-block;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
</style>
@@ -12,16 +12,44 @@
>
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item ref='region' :label="$t('NiONumber')" prop='region'>
<a-input
v-model='form.nioNumber' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />
</a-form-model-item>
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('NiONumber')">{{$t('NiONumber')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<a-input class="box-input" :title="$t('pleaseEnter')+$t('ParameterName')"
v-model='form.nioNumber' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='region' :label="$t('NiONumber')" prop='region' >-->
<!-- <a-input-->
<!-- v-model='form.nioNumber' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='9'>
<a-form-model-item ref='paramsTemplateName' :label="$t('ParameterName')" prop='paramsTemplateName'>
<a-input
v-model='form.paramsName' :placeholder="$t('pleaseEnter')+$t('ParameterName')" />
</a-form-model-item>
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('ParameterName')">{{$t('ParameterName')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<a-input
v-model='form.paramsName' :title="$t('pleaseEnter')+$t('ParameterName')" :placeholder="$t('pleaseEnter')+$t('ParameterName')" />
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='paramsTemplateName' :label="$t('ParameterName')" prop='paramsTemplateName'>-->
<!-- <a-input-->
<!-- v-model='form.paramsName' :placeholder="$t('pleaseEnter')+$t('ParameterName')" />-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='6' style='margin-top: 5px'>
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
@@ -29,15 +57,32 @@
</a-col>
</a-row>
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item ref='region' :label="$t('areaOfResponsibility')" prop='region'>
<a-form-model-item class='itemModel' prop='region'>
<a-col :span='10'>
<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='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<j-dict-select-tag class='box-input' v-model='form.dutyTerritory'
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:title="$t('PleaseSelect')+$t('areaOfResponsibility')"
:triggerChange='false' :dictCode="'duty_territory'" />
</a-form-model-item>
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='region' :label="$t('areaOfResponsibility')" prop='region'>-->
<!-- <a-form-model-item class='itemModel' prop='region'>-->
<!-- <j-dict-select-tag class='box-input' v-model='form.dutyTerritory'-->
<!-- :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"-->
<!-- :type="'select'"-->
<!-- :triggerChange='false' :dictCode="'duty_territory'" />-->
<!-- </a-form-model-item>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='9'>
</a-col>
@@ -291,6 +336,89 @@ export default {
display: flex;
justify-content: center;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
height: 40px;
margin-bottom: 24px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.header-text {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
}
.formAdd {
margin-bottom: 40px;
}
.button-text {
height: 38px;
width: calc(100% - 100px);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
color: #00B3BE;
}
.button-text-text {
position: absolute;
right: -10px;
top: -21px;
display: inline-block;
padding: 6px;
border-radius: 50%;
background: red;
text-align: center;
line-height: 6px;
color: #fff;
}
</style>
<style lang='less'>
.area-module {
@@ -304,4 +432,57 @@ export default {
}
}
}
</style>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.itemModel-text .ant-form-item-control-wrapper {
width: 100% !important;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
</style>
@@ -3,10 +3,14 @@
<div class="box-title-text" v-if="!isInput">
<a-input class="box-input" :value="value" @input="indexclick($event)"
:disabled="true"
:title="value"
:placeholder="$t('PleaseSelect')+query.db_field_txt"/>
<a-button type="primary" class="button-box" @click="standardClick">
{{this.$t('PersonnelSelection')}}
</a-button>
<a-button type="primary" v-if='isDelete' class="button-box" @click="standardDelete">
{{this.$t('delete')}}
</a-button>
</div>
<div class="box-title-text" v-if="isInput">
<a-input :class="{'box-input':!isClass}" :value="value"
@@ -54,7 +58,7 @@
export default {
name: 'index',
props: ['query', 'value', 'personneQuery', 'isSingleChoice', 'isInput', 'isClass'],
props: ['query', 'value', 'personneQuery', 'isSingleChoice', 'isInput', 'isClass','isDelete'],
data() {
return {
loading: true,
@@ -86,12 +90,18 @@
this.queryDepartUserTreeList()
this.visible = true
},
standardDelete(){
this.$emit('input', null)
this.$forceUpdate()
this.$emit('deleteData',this.query.db_field_name)
},
// onSelect(selectedKeys, info) {
// console.log(selectedKeys)
// this.selectedKey = selectedKeys
// },
onCheck(checkedKeys, info) {
console.log(checkedKeys)
this.userIds = checkedKeys.checked
this.userName = []
if (info.checkedNodes && info.checkedNodes.length > 0) {
@@ -151,6 +161,11 @@
},
indexclick(event) {
this.$emit('input', event.target.value)
this.departId = ''
this.searchModel = ''
this.userIds = []
this.userName = []
this.defaultCheckedKeys = []
},
onSearch(e) {
this.gData = []
@@ -6,41 +6,77 @@
ref='ruleForm'
:model='formInline'
:rules='rules'
:label-col='labelCol'
:wrapper-col='wrapperCol'
>
<a-row :gutter='24'>
<a-col :span='24'>
<a-form-model-item style='line-height: 31.9999px;' prop='sourceConfigId' class='aform'>
<div style='display: flex; justify-content: center'>
<span class="Requireditem">*</span>
<div style='width: 107px;line-height: 29px;'>{{ $t('from') }}&nbsp;&nbsp;&nbsp;</div>
<a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')" v-model="formInline.sourceConfigId" allowClear style='width: 140%'>
<a-select-option v-for="(item, key) in fromDate" :key="key" :value="item.value" style='width: 140%'>
<span style="display: inline-block;width: 140%" :title=" item.label ">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('from')">{{$t('from')}}</span>
</div>
<a-form-model-item class="itemModel" prop="sourceConfigId">
<a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')"
style="width: calc(100% - 90px)"
v-model="formInline.sourceConfigId" allowClear>
<a-select-option v-for="(item, key) in fromDate" :key="key" :value="item.value">
<span :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<div style='width: 90px;line-height: 29px;'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</div>
</div>
</a-form-model-item>
<span style='width: 90px;line-height: 29px;margin-top: 8px'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</span>
</a-form-model-item>
</div>
<!-- <a-form-model-item style='line-height: 31.9999px;' prop='sourceConfigId' class='aform'>-->
<!-- <div style='display: flex; justify-content: center'>-->
<!-- <span class="Requireditem">*</span>-->
<!-- <div style='width: 107px;line-height: 29px;'>{{ $t('from') }}&nbsp;&nbsp;&nbsp;</div>-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')" v-model="formInline.sourceConfigId" allowClear style='width: 140%'>-->
<!-- <a-select-option v-for="(item, key) in fromDate" :key="key" :value="item.value" style='width: 140%'>-->
<!-- <span style="display: inline-block;width: 140%" :title=" item.label ">-->
<!-- {{ item.label }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- <div style='width: 90px;line-height: 29px;'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</div>-->
<!-- </div>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='24'>
<a-form-model-item style='line-height: 31.9999px;' prop='targetConfigIds' class='aform'>
<div style='display: flex;justify-content: center'>
<span class="Requireditem">*</span>
<div style='line-height: 29px;width: 107px'>{{ $t('ReferenceTo') }}&nbsp;&nbsp;&nbsp;</div>
<a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')" v-model="formInline.targetConfigIds" allowClear mode="multiple" style='width: 140%'>
<a-select-option v-for="(item, key) in fromDateTo" :key="key" :value="item.value" style='width: 140%'>
<span style="display: inline-block;width: 140%" :title=" item.label ">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('ReferenceTo')">{{$t('ReferenceTo')}}</span>
</div>
<a-form-model-item class="itemModel" prop="targetConfigIds">
<a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')"
style="width: calc(100% - 90px)"
v-model="formInline.targetConfigIds" allowClear mode="multiple">
<a-select-option v-for="(item, key) in fromDateTo" :key="key" :value="item.value">
<span class="itemOption" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<div style='width: 90px;line-height: 29px;'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</div>
</div>
</a-form-model-item>
<span
style='width: 90px;line-height: 29px;float: right'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</span>
</a-form-model-item>
</div>
<!-- <a-form-model-item style='line-height: 31.9999px;' prop='targetConfigIds' class='aform'>-->
<!-- <span class="Requireditem">*</span>-->
<!-- <span style='line-height: 29px;width: 107px;display: inline-block'>{{ $t('ReferenceTo') }}&nbsp;&nbsp;&nbsp;</span>-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('controlVerification')"-->
<!-- style="width: calc(100%);display: inline-block"-->
<!-- v-model="formInline.targetConfigIds" allowClear mode="multiple">-->
<!-- <a-select-option v-for="(item, key) in fromDateTo" :key="key" :value="item.value">-->
<!-- <span class="itemOption" :title=" item.label ">-->
<!-- {{ item.label }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- <span style='width: 90px;line-height: 29px;display: inline-block'>&nbsp;&nbsp;&nbsp;&nbsp;{{ $t('configure') }}</span>-->
<!-- </a-form-model-item>-->
</a-col>
</a-row>
</a-form-model>
@@ -53,159 +89,165 @@
</template>
<script>
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
import axios from 'axios'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
export default {
name: 'diolagArea',
components: {},
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
selectedRowKeysDate: {},
loading: false,
editId: '',
newVisible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
},
formInline: {},
rules: {
sourceConfigId: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('controlVerification'), trigger: 'change' },
],
targetConfigIds: [
{ required: true, message: this.$t('pleaseSelect')+this.$t('controlVerification'), trigger: 'change' },
],
},
areaTable: [],
flag: false, //表单提交标识
spinLoading: false,
confirmLoading: false,
selectedRowKeys: [],
fromDate: [],
fromDateTo: [],
}
},
props: {
paramsManifest: {
type: Object,
default: {},
require: true
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
import axios from 'axios'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
export default {
name: 'diolagArea',
components: {},
data() {
return {
token: Vue.ls.get(ACCESS_TOKEN),
selectedRowKeysDate: {},
loading: false,
editId: '',
newVisible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
},
formInline: {},
rules: {
sourceConfigId: [
{ required: true, message: this.$t('pleaseSelect') + this.$t('controlVerification'), trigger: 'change' }
],
targetConfigIds: [
{ required: true, message: this.$t('pleaseSelect') + this.$t('controlVerification'), trigger: 'change' }
]
},
areaTable: [],
flag: false, //表单提交标识
spinLoading: false,
confirmLoading: false,
selectedRowKeys: [],
fromDate: [],
fromDateTo: []
}
},
selectedRowKeysArray: {
type: String,
default: '',
require: true
}
},
mounted() {
this.loadData(),
this.loadDataTo()
},
methods: {
loadData() {
let _this = this
let param = {paramsManifestId: this.paramsManifest.id,configFlag: 1}
axios({
url: '/jero-boot/params/collectManifest/getConfigLableListR',
method: 'post',
data: param,
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token':_this.token
}
})
.then( (res) =>{
console.log(res)
if (res.data.success) {
this.fromDate = res.data.result
}else{
_this.$message.warning(res.data.message)
props: {
paramsManifest: {
type: Object,
default: {},
require: true
},
selectedRowKeysArray: {
type: String,
default: '',
require: true
}
},
mounted() {
this.loadData(),
this.loadDataTo()
},
methods: {
loadData() {
let _this = this
let param = { paramsManifestId: this.paramsManifest.id, configFlag: 1 }
axios({
url: '/jero-boot/params/collectManifest/getConfigLableListR',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
}
})
.catch( (error) =>{
console.log(error);
});
},
loadDataTo() {
let _this = this
let param = {paramsManifestId: this.paramsManifest.id,configFlag: 2}
axios({
url: '/jero-boot/params/collectManifest/getConfigLableListR',
method: 'post',
data: param,
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token':_this.token
}
})
.then( (res) =>{
console.log(res)
if (res.data.success) {
this.fromDateTo = res.data.result
}else{
_this.$message.warning(res.data.result)
}
})
.catch( (error) =>{
console.log(error);
});
},
searchQuery() {
this.loadData()
},
searchReset() {
this.form = {}
this.loadData()
},
handleCancel() {
this.$emit('areaVisibleAssignedbyflag', false)
},
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
this.selectedRowKeysDate = selectedRowKeysDate
this.selectedRowKeys = selectedRowKeys
},
handleTableChange(val) {
},
// 引用参数确定
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
if(this.formInline.targetConfigIds instanceof Array){
this.formInline.targetConfigIds = this.formInline.targetConfigIds.join(',')
}
let param = {ids: this.selectedRowKeysArray, ...this.formInline }
postAction('params/collectManifest/referParams', param).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleAssignedbyflag', false)
this.$emit('GetgetTableList')
.then((res) => {
console.log(res)
if (res.data.success) {
this.fromDate = res.data.result
} else {
this.$message.warning(res.message)
_this.$message.warning(res.data.message)
}
})
}})
.catch((error) => {
console.log(error)
})
},
loadDataTo() {
let _this = this
let param = { paramsManifestId: this.paramsManifest.id, configFlag: 2 }
axios({
url: '/jero-boot/params/collectManifest/getConfigLableListR',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
}
})
.then((res) => {
console.log(res)
if (res.data.success) {
this.fromDateTo = res.data.result
} else {
_this.$message.warning(res.data.result)
}
})
.catch((error) => {
console.log(error)
})
},
searchQuery() {
this.loadData()
},
searchReset() {
this.form = {}
this.loadData()
},
handleCancel() {
this.$emit('areaVisibleAssignedbyflag', false)
},
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
this.selectedRowKeysDate = selectedRowKeysDate
this.selectedRowKeys = selectedRowKeys
},
handleTableChange(val) {
},
// 引用参数确定
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let formInline = JSON.parse(JSON.stringify(this.formInline))
if (formInline.targetConfigIds instanceof Array) {
formInline.targetConfigIds = formInline.targetConfigIds.join(',')
}
let param = { ids: this.selectedRowKeysArray, ...formInline }
this.confirmLoading = true
postAction('params/collectManifest/referParams', param).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleAssignedbyflag', false)
this.$emit('GetgetTableList')
this.confirmLoading = false
} else {
this.$message.warning(res.message)
this.confirmLoading = false
}
})
}
})
// axios({
// url: '/jero-boot/params/collectManifest/referParams',
// method: 'post',
@@ -234,57 +276,120 @@ export default {
// .catch( (error) =>{
// console.log(error);
// });
}
}
}
}
</script>
<style lang='less' scoped>
@import '~@assets/less/common.less';
/deep/.ant-form-explain{
padding-left: 62px;
}
.diolag-area {
.table-area {
margin: 20px 0;
@import '~@assets/less/common.less';
.action-edit {
margin-right: 10px;
/deep/ .ant-form-explain {
padding-left: 62px;
}
.diolag-area {
.table-area {
margin: 20px 0;
.action-edit {
margin-right: 10px;
}
}
.table-del {
color: red;
}
}
.table-del {
color: red;
.drawer-bootom-button {
display: flex;
justify-content: center;
}
.aform {
display: flex;
justify-content: center;
}
.itemOption {
display: inline-block;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
height: 40px;
margin-bottom: 24px;
}
}
.drawer-bootom-button{
display: flex;
justify-content: center;
}
.aform{
display: flex;
justify-content: center;
}
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
}
}
}
}
}
}
.page{
display: flex;
justify-content: flex-end;
margin-bottom: 20px;
}
.Requireditem{
color: red;
line-height: 24px;
}
.page {
display: flex;
justify-content: flex-end;
margin-bottom: 20px;
}
.Requireditem {
color: red;
line-height: 24px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
</style>
@@ -92,6 +92,7 @@ export default {
handleSubmit() {
let _this = this
let param = {ids: this.selectedRowKeysArray, paramsManifestId: this.paramsManifest.id }
this.confirmLoading = true
axios({
url: '/jero-boot/params/collectManifest/syncReport',
method: 'post',
@@ -114,12 +115,15 @@ export default {
_this.$message.success(_this.$t('OperationSuccessful'))
this.$emit('areaVisibsynchronous', false)
this.$emit('GetgetTableList')
this.confirmLoading = false
}else{
_this.$message.warning(_this.$t('operationFailed'))
this.confirmLoading = false
}
})
.catch( (error) =>{
console.log(error);
this.confirmLoading = false
});
}
}
@@ -107,12 +107,15 @@ export default {
handleSubmit() {
let _this = this
let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
this.confirmLoading = true
postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
if (res.success) {
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$message.success(res.message)
this.$message.success(_this.$t('OperationSuccessful'))
this.confirmLoading = false
} else {
this.$message.warning(res.message)
this.$message.warning(_this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
+1 -1
View File
@@ -54,7 +54,7 @@
position: absolute;
top: 0;
left: 0;
z-index: 999;
z-index: 111999;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.9);
@@ -23,7 +23,7 @@
<div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+item.db_field_txt"
<a-input class="box-input" style='width: 226px' :placeholder="$t('PleaseEnter')+item.db_field_txt"
v-model="queryParam[item.db_field_name]"></a-input>
</div>
<div class="box-title-text" v-else-if="item.field_show_type == '2'">
@@ -139,6 +139,7 @@
import axios from 'axios'
import Vue from 'vue'
import VueDraggableResizable from 'vue-draggable-resizable'
import { mapGetters } from 'vuex'
export default {
name: 'index',
@@ -260,12 +261,14 @@
watch: {
currentPersonRole: {
handler: function() {
this.getTableList();
console.log(123)
this.getTableList()
},
immediate: true
}
},
methods: {
...mapGetters(['userInfo']),
rowClassName(row, index) {
if (row.changeFlag == '1') {
return 'rowClassRedYellow'
@@ -276,11 +279,13 @@
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.$emit('handlePreservation')
this.getTableList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.$emit('handlePreservation')
this.getTableList()
},
// 查看配置详细信息
@@ -352,11 +357,11 @@
.then((res) => {
console.log(res)
if (res.data.success) {
_this.$message.success(res.data.result)
_this.$message.success(_this.$t('OperationSuccessful'))
_this.areaVisible = false
this.getLoginUserType()
} else {
_this.$message.warning(res.data.result)
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
@@ -375,10 +380,10 @@
this.areaVisible = true
// this.$refs.ruleForm.clearValidate()
this.$nextTick(() => {
this.Dateline = { ...this.Dateline }
this.getquerySdtList(record)
this.$refs.ruleForm.clearValidate()
})
this.$refs.ruleForm.clearValidate()
},
dataValueTobeinitiated() {
this.$message.warning(this.$t('certifiedEngineer') + this.$t('and') + this.$t('Statusis') + this.$t('CollectionInitiated') + this.$t('ReturnedPerson') + this.$t('alteration') + this.$t('toHavePermission'))
@@ -395,10 +400,32 @@
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId
}
this.loading = true
getAction(this.url.getLoginUserType, params).then((res) => {
if (res.success) {
this.getTableList(res.result[0].value)
this.$emit('LoginUserType', res.result, this.currentPersonRole)
this.getAndUserId(res.result)
}
})
},
getAndUserId(result) {
let query = {
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
userId: this.userInfo().id
}
getAction('/params/userTypeLog/queryCurrentType', query).then((res) => {
if (res.success) {
if (res.result && res.result.userType) {
if (!(result.some(val => val.value == res.result.userType))) {
res.result.userType = result[0] ? result[0].value : ''
}
this.getTableList(res.result.userType)
} else {
this.getTableList(result[0].value)
}
this.$emit('LoginUserType', result, this.currentPersonRole, res.result.userType)
} else {
}
})
},
@@ -512,7 +539,10 @@
this.dataSource = tt
this.total = res.result.total
this.selectedRowKeys = []
this.loading = false
this.$emit('getDataSource', this.dataSource)
setTimeout(() => {
this.loading = false
}, 500)
} else {
this.loading = false
}
@@ -596,7 +626,10 @@
this.selectedRowrowValue = []
this.$emit('value', this.selectedRowKeys)
this.$emit('rowValue', this.selectedRowrowValue)
this.loading = false
this.$emit('getDataSource', this.dataSource)
setTimeout(() => {
this.loading = false
}, 500)
} else {
this.loading = false
}
@@ -618,7 +651,7 @@
detailClick(item, index) {
// this.$emit('detailClick', item)
}
},
}
}
</script>
<style lang='less'>
@@ -714,10 +747,12 @@
transform: none !important;
bottom: 0;
}
.rowClassRed{
background: #f3d9de;
.rowClassRed {
background: #f3d9de;
}
.rowClassRedYellow{
background: yellow;
.rowClassRedYellow {
background: yellow;
}
</style>
+3 -3
View File
@@ -44,8 +44,8 @@
</div>
<a-dropdown>
<span class="action action-full ant-dropdown-link user-dropdown-menu">
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
<!-- <span v-if="isDesktop()">欢迎您,{{ nickname() }}</span>-->
<!-- <a-avatar class="avatar" size="small" :src="getAvatar()"/>-->
<span v-if="isDesktop()">welcome,{{ userInfo().username }}</span>
</span>
<a-menu slot="overlay" class="user-dropdown-menu-wrapper">
<!-- <a-menu-item key="0">-->
@@ -209,7 +209,7 @@
},
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
...mapActions(['Logout']),
...mapGetters(['nickname', 'avatar', 'userInfo']),
...mapGetters(['username', 'avatar', 'userInfo']),
getAvatar() {
return getFileAccessHttpUrl(this.avatar())
},
+2 -1
View File
@@ -50,9 +50,10 @@ import {
import config from '@/defaultSettings'
//引入
import socketPublic from '@/utils/socketVuex.js'
import socketPublicOne from '@/utils/socketVuexOne.js'
//挂载
Vue.prototype.$socketPublic = socketPublic
Vue.prototype.$socketPublicOne = socketPublicOne
import JDictSelectTag from './components/dict/index.js'
import hasPermission from '@/utils/hasPermission'
import vueBus from '@/utils/vueBus'
+116
View File
@@ -0,0 +1,116 @@
import Vue from 'vue'
import Vuex from 'vuex'
import store from '@/store/'
Vue.use(Vuex)
// console.log(window._CONFIG['domianWebSocketURL'])
export default new Vuex.Store({
state: {
ws: null, //建立的连接
lockReconnect: false, //是否真正建立连接
timeout: 15000, //15秒一次心跳
timeoutObj: null, //心跳心跳倒计时
serverTimeoutObj: null, //心跳倒计时
timeoutnum: null, //断开 重连倒计时
msg: null //接收到的信息
},
getters: {
// 获取接收的信息
socketMsgs: state => {
return state.msg
}
},
mutations: {
//初始化ws 用户登录后调用
webSocketInit(state) {
let that = this
//this 创建一个state.ws对象【发送、接收、关闭socket都由这个对象操作】
const userId = store.getters.userInfo.id
state.ws = new WebSocket(window._CONFIG['domianWebSocketURL'].replace('https://', 'wss://').replace('http://', 'ws://') + '/websocket/socketServer')
state.ws.onopen = function(res) {
console.log('Connection success...')
/**
* 启动心跳检测
*/
that.commit('start')
}
state.ws.onmessage = function(res) {
if (res.data === 'heartCheck') {
// 收到服务器信息,心跳重置
that.commit('reset')
} else {
state.msg = res
}
}
state.ws.onclose = function(res) {
//重连
that.commit('reconnect')
}
state.ws.onerror = function(res) {
//重连
that.commit('reconnect')
}
},
reconnect(state) {
//重新连接
let that = this
if (state.lockReconnect) {
return
}
state.lockReconnect = true
//没连接上会一直重连,30秒重试请求重连,设置延迟避免请求过多
state.timeoutnum &&
clearTimeout(state.timeoutnum)
state.timeoutnum = setTimeout(() => {
//新连接
that.commit('webSocketInit')
state.lockReconnect = false
}, 5000)
},
reset(state) {
//重置心跳
let that = this
//清除时间
clearTimeout(state.timeoutObj)
clearTimeout(state.serverTimeoutObj)
//重启心跳
that.commit('start')
},
start(state) {
//开启心跳
var self = this
state.timeoutObj &&
clearTimeout(state.timeoutObj)
state.serverTimeoutObj &&
clearTimeout(state.serverTimeoutObj)
state.timeoutObj = setTimeout(() => {
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if (state.ws.readyState === 1) {
//如果连接正常
state.ws.send('heartCheck')
} else {
//否则重连
self.commit('reconnect')
}
state.serverTimeoutObj = setTimeout(function() {
//超时关闭
state.ws.close()
}, state.timeout)
}, state.timeout)
}
},
actions: {
webSocketInit({
commit
}, url) {
commit('webSocketInit', url)
},
webSocketSend({
commit
}, p) {
commit('webSocketSend', p)
}
}
})
@@ -259,7 +259,9 @@
},
hideModal() {
this.form.dictName = this.form.dictName.trim()
this.form.description = this.form.description.trim()
if (this.form.description){
this.form.description = this.form.description.trim()
}
let params = {
...this.form
}
@@ -10,7 +10,7 @@
<a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>
<div class="text-text-right"
:class="{ 'null-input':item.checked }">
<div class="text-header">
<div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.module_type"></span>
@@ -22,19 +22,19 @@
<span v-html="item.serial_number"></span>
</template>
<span style="cursor: pointer"
@click="titleClick(item)" v-html="item.serial_number"></span>
v-html="item.serial_number"></span>
</a-tooltip>
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.title"></span>
</template>
<span style="cursor: pointer" v-html="item.title" @click="titleClick(item)"></span>
<span style="cursor: pointer" v-html="item.title"></span>
</a-tooltip>
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.file_name"></span>
</template>
<span style="cursor: pointer" v-html="item.file_name" @click="titleClick(item)"></span>
<span style="cursor: pointer" v-html="item.file_name"></span>
</a-tooltip>
</div>
<a-tooltip placement="topLeft" v-if="!queryParam.selectValue" :mouseEnterDelay="0.5">
@@ -1,6 +1,7 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
@@ -29,6 +30,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:template:add'">
@@ -200,6 +202,7 @@ export default {
methods: {
handleCancel() {
this.areaVisible=false
this.$refs['ruleForm'].resetFields()
},
handleSubmit() {
if( this.formInline.paramsTemplateName !== undefined) {
@@ -1,32 +1,34 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('entryName')">
<span>{{$t('entryName')}}</span>
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('entryName')">
<span>{{$t('entryName')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('entryName')"
v-model="queryParam.projectName"></a-input>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('entryName')"
v-model="queryParam.projectName"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('ListTitle')">
<span>{{$t('ListTitle')}}</span>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('ListTitle')">
<span>{{$t('ListTitle')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('ListTitle')"
v-model="queryParam.title"></a-input>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('ListTitle')"
v-model="queryParam.title"></a-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="6" :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-row>
</a-form>
</div>
<div>
<a-table
@@ -70,290 +72,294 @@
</template>
<script>
import ExportHistory from '@/components/exporthistory/index'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
export default {
name: 'index',
components: {
ExportHistory
},
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
selectedRowKeys: [],
selectedRowKeysArray: '',
formInline: {},
rules: {
paramsTemplateName:[
{ required: true, message: this.$t('PleaseEnter')+this.$t('templateName'), trigger: 'change' },
],
},
visible: false,
dataSource: [],
confirmLoading: false,
url: {
list: 'params/report/page',
},
total: 0,
pageSize: 10,
pageNo: 1,
title: '新增',
columns: [
{
title: this.$t('entryName'),
align: 'center',
width: '10%',
dataIndex: 'projectName',
},
{
title: this.$t('ListTitle'),
align: 'center',
dataIndex: 'title',
},
{
title: this.$t('Version'),
align: 'center',
dataIndex: 'version',
},
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 200,
scopedSlots: { customRender: 'operation' }
}
],
queryParam: {},
areaVisible:false,
paramsTemplateName: '',
drawerVisible: false,
titleTag: '导出历史'
}
},
mounted() {
this.getList()
},
methods: {
handleCancel() {
this.areaVisible=false
},
handleSubmit() {
if( this.formInline.paramsTemplateName !== undefined) {
this.formInline.paramsTemplateName = this.formInline.paramsTemplateName.trim()
}
this.$refs.ruleForm.validate(valid => {
if (valid) {
getAction(this.url.copy + `?id=${this.selectedRowKeys[0]}&paramsTemplateName=${this.formInline.paramsTemplateName}`, {}).then((res) => {
if (res.success) {
this.areaVisible = false
this.$message.success(res.message)
this.selectedRowKeys = []
this.getList()
} else {
this.$message.warning(res.message)
}
})
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
onSelectChange(value) {
this.selectedRowKeys = value
this.selectedRowKeysArray = this.selectedRowKeys.join(',')
},
// 复制
handlecody(){
this.drawerVisible=true
},
hideModal(){
this.visible = false;
},
//编辑
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//删除
deleteLib(val) {
let newUrl = this.$router.resolve({
path: '/managementdetails',
query: val
})
window.open(newUrl.href, '_blank')
},
//虚拟清单名称事件
entryNameClick(item) {
this.$router.push({
path: '/ParameterTemplateList',
query: item
})
},
searchQuery() {
this.pageNo = 1
this.getList()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.getList()
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
addModelList() {
this.pageNo = 1
this.getList()
},
PersonnelSelectionChange(value, id) {
this.queryParam[value] = id
this.queryParam = { ...this.queryParam }
},
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
}
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 = res.result.current - 1
this.getList()
return
}
this.dataSource = res.result.records || []
import ExportHistory from '@/components/exporthistory/index'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
this.total = res.result.total
this.loading = false
} else {
this.loading = false
export default {
name: 'index',
components: {
ExportHistory
},
data() {
return {
token: Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
selectedRowKeys: [],
selectedRowKeysArray: '',
formInline: {},
rules: {
paramsTemplateName: [
{ required: true, message: this.$t('PleaseEnter') + this.$t('templateName'), trigger: 'change' }
]
},
visible: false,
dataSource: [],
confirmLoading: false,
url: {
list: 'params/report/page'
},
total: 0,
pageSize: 10,
pageNo: 1,
title: '新增',
columns: [
{
title: this.$t('entryName'),
align: 'center',
width: '10%',
dataIndex: 'projectName'
},
{
title: this.$t('ListTitle'),
align: 'center',
dataIndex: 'title'
},
{
title: this.$t('Version'),
align: 'center',
dataIndex: 'version'
},
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 200,
scopedSlots: { customRender: 'operation' }
}
],
queryParam: {},
areaVisible: false,
paramsTemplateName: '',
drawerVisible: false,
titleTag: '导出历史'
}
},
mounted() {
this.getList()
},
methods: {
handleCancel() {
this.areaVisible = false
},
handleSubmit() {
if (this.formInline.paramsTemplateName !== undefined) {
this.formInline.paramsTemplateName = this.formInline.paramsTemplateName.trim()
}
})
this.$refs.ruleForm.validate(valid => {
if (valid) {
getAction(this.url.copy + `?id=${this.selectedRowKeys[0]}&paramsTemplateName=${this.formInline.paramsTemplateName}`, {}).then((res) => {
if (res.success) {
this.areaVisible = false
this.$message.success(res.message)
this.selectedRowKeys = []
this.getList()
} else {
this.$message.warning(res.message)
}
})
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
onSelectChange(value) {
this.selectedRowKeys = value
this.selectedRowKeysArray = this.selectedRowKeys.join(',')
},
// 复制
handlecody() {
this.drawerVisible = true
},
hideModal() {
this.visible = false
},
//编辑
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//删除
deleteLib(val) {
let newUrl = this.$router.resolve({
path: '/managementdetails',
query: val
})
window.open(newUrl.href, '_blank')
},
//虚拟清单名称事件
entryNameClick(item) {
this.$router.push({
path: '/ParameterTemplateList',
query: item
})
},
searchQuery() {
this.pageNo = 1
this.getList()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.getList()
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
addModelList() {
this.pageNo = 1
this.getList()
},
PersonnelSelectionChange(value, id) {
this.queryParam[value] = id
this.queryParam = { ...this.queryParam }
},
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
}
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 = res.result.current - 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.loading = false
}
})
}
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
@import '~@assets/less/common.less';
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.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;
}
.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;
}
.add-input{
width: 82%;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.text-operation {
margin-right: 8px;
}
.add-input {
width: 82%;
}
.page {
text-align: right;
margin-top: 20px;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.box-title-text-add {
line-height: 1.4;
display: flex;
}
.text-operation {
margin-right: 8px;
}
.title-text-add {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
margin-top: 3px;
}
.page {
text-align: right;
margin-top: 20px;
}
.box-input-add {
display: inline-block;
height: 38px;
width: 100%;
}
.box-title-text-add {
line-height: 1.4;
display: flex;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-add {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
margin-top: 3px;
}
.Required {
color: red;
margin-right: 4px;
}
.box-input-add {
display: inline-block;
height: 38px;
width: 100%;
}
.title-text-text {
margin-top: 9px;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.formAdd {
margin-bottom: 40px;
}
.Required {
color: red;
margin-right: 4px;
}
.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;
}
.add-text-text{
margin-top: -14px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.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;
}
.add-text-text {
margin-top: -14px;
}
</style>
@@ -1,6 +1,7 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
@@ -18,6 +19,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:template:add'">
@@ -122,7 +122,7 @@
<span class="title-text-text"
:title="$t('NParameterDescription')">{{$t('NParameterDescription')}}</span>
</div>
<a-form-model-item class="itemModel" prop="description">
<a-form-model-item class="itemModel-text" prop="description">
<a-input class="box-input add-input"
style='height: 95px; width: 100%'
type="textarea"
@@ -803,7 +803,11 @@ export default {
height: 38px;
width: 100%;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
@@ -1,6 +1,7 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
@@ -38,6 +39,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:paramsInfo:add'">
@@ -34,10 +34,10 @@
dataSource: [],
loading: false,
approvalResult: {
0: this.$t('agree'),
0: this.$t('accept'),
1: this.$t('disagree'),
2: this.$t('terminationProcess'),
3: this.$t('issue')
3: this.$t('inquiry')
},
columns: [
{
@@ -509,7 +509,6 @@
distributionEngineerList: this.distributionEngineerList
}
postAction(this.url.DetailEOAdd, query).then((res) => {
if (res.success) {
if (res.success) {
this.confirmLoading = false
this.getList()
@@ -517,9 +516,8 @@
this.$message.success(this.$t('OperationSuccessful'))
} else {
this.confirmLoading = false
this.$message.warning(this.$t('operationFailed'))
this.$message.warning(res.message)
}
}
})
},
feedbackData(url, Action) {
@@ -93,11 +93,12 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text-fq">
<span class="Required" v-if="this.$route.query.isDisplay">*</span>
<!-- <span class="Required" v-if="this.$route.query.isDisplay">*</span>-->
<span class="title-text-text"
:title="$t('Deliverables')">{{$t('Deliverables')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="!this.$route.query.isDisplay?'':'fileId'">
<!-- :prop="!this.$route.query.isDisplay?'':'fileId'"-->
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('fileId')">
{{ (formInline.fileId === 'null' || formInline.fileId === '' ||
@@ -195,17 +195,17 @@
this.$message.success(this.$t('OperationSuccessful'))
if (this.$route.query.taskDefinitionKey == 'zrrjsrw' || this.$route.query.taskDefinitionKey == 'zrrqr') {
if (value.flag == 0) {
if (this.queryProject.verifyRemark) {
if (this.queryProject.verifyDeliverableType) {
this.startProcessDesign(this.queryBy, 4)
}
if (this.queryProject.prehomoRemark) {
if (this.queryProject.prehomoDeliverableType) {
this.startProcessDesign(this.queryBy, 3)
}
if (this.queryProject.designRemark) {
if (this.queryProject.designDeliverableType) {
this.startProcessDesign(this.queryBy, 2)
}
if (!this.queryProject.verifyRemark && !this.queryProject.prehomoRemark &&
!this.queryProject.designRemark) {
if (!this.queryProject.verifyDeliverableType && !this.queryProject.prehomoDeliverableType &&
!this.queryProject.designDeliverableType) {
setTimeout(() => {
this.loading = false
window.close()
@@ -51,7 +51,7 @@
<a-icon type="safety-certificate"/>
{{$t('nonConformance')}}
</div>
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
<div class="Virtual-detail-left-text" v-has="'params:manifest:page'"
:title="$t('TaskParameterCollection')"
@click="textClick(4,$t('TaskParameterCollection'))">
<a-icon type="profile"/>
@@ -80,7 +80,7 @@
@click="textClick(3,$t('nonConformance'))">
<a-icon type="safety-certificate"/>
</div>
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
<div class="Virtual-detail-left-text" v-has="'params:manifest:page'"
:title="$t('TaskParameterCollection')"
@click="textClick(4,$t('TaskParameterCollection'))">
<a-icon type="profile"/>
@@ -90,7 +90,8 @@
<div class="Virtual-detail-right"
:style="{'width':isDisplay?'calc(100% - 240px)':'calc(100% - 66px)'}">
<ProjectDetailsName @TaskListChange="TaskListChange" v-if="textTitle === $t('projectDetails')"/>
<listOfRegulations v-else-if="textTitle === $t('listOfRegulations')"/>
<listOfRegulations v-else-if="textTitle === $t('listOfRegulations')"
:areaOfResponsibilityList="areaOfResponsibilityList"/>
<TaskList :isDisplayNum="isDisplayNum" :areaOfResponsibility="areaOfResponsibility"
v-else-if="textTitle === $t('taskList')"/>
<TaskParameterCollection v-else-if="textTitle === $t('TaskParameterCollection')"/>
@@ -137,7 +138,7 @@
isTrue: true,
loading: false,
isDisplay: true,
areaOfResponsibilityList:{},
url: {
logList: '/project/projectLawsInventoryLogEO/page',
historicalVersionUrl: '',
@@ -216,6 +217,8 @@
}
},
textClick(num, name) {
this.areaOfResponsibilityList = {}
this.areaOfResponsibility = {}
this.textTitle = name
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
if (textColor && textColor.length > 0) {
@@ -286,15 +289,20 @@
})
},
TaskListChange(item) {
this.areaOfResponsibility = item
this.textTitle = this.$t('taskList')
if (item.isListing && item.isListing == '1'){
this.areaOfResponsibilityList = item
this.textTitle = this.$t('listOfRegulations')
}else{
this.areaOfResponsibility = item
this.textTitle = this.$t('taskList')
}
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
if (textColor && textColor.length > 0) {
textColor[0].classList.remove('Virtual-detail-left-text-color')
}
let text = document.getElementsByClassName('Virtual-detail-left-text')
for (let i = 0; i < text.length; i++) {
if (text[i].title == this.$t('taskList')) {
if (text[i].title == this.textTitle) {
text[i].classList.add('Virtual-detail-left-text-color')
}
}
@@ -130,6 +130,11 @@
<a-icon type="plus"/>
{{$t('referenceparameter')}}
</div>
<!-- 保存-->
<div @click="handlePreservation(1)" class="operator-text" v-if='currentPersonRole == "dre"'>
<a-icon type="check-circle"/>
{{$t('preservation')}}
</div>
<!-- 提交-->
<div @click="handleSubmit" class="operator-text" v-if='currentPersonRole == "dre"'>
<a-icon type="check-circle"/>
@@ -157,14 +162,17 @@
<div style="width: 100%">
<!-- 表格-10控件-->
<table-collection ref="CollectionTabel" :url='url' :paramsManifest='paramsManifest' @rowValue='rowValue'
:formInline='formInline' :currentPersonRole='currentPersonRole' @value='value'
:formInline='formInline' :currentPersonRole='currentPersonRole'
@getDataSource="getDataSource"
@handlePreservation="handlePreservation"
@value='value'
@listReset='listReset' @LoginUserType='LoginUserType'/>
</div>
</a-card>
</div>
</div>
<!-- 添加--->
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='750px' :footer="null">
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='850px' :footer="null">
<parameter-library-add v-if='areaVisible' :paramsManifest='paramsManifest' @areaVisible='areaVisible = false'
@GetgetTableList='GetgetTableList'/>
</a-modal>
@@ -303,39 +311,39 @@
'{{$t('CollectionInitiated')}}'、'{{$t('ReturnedPerson')}}'{{$t('or')}}'{{$t('alteration')}}'
</span>
<!-- 同步上报库-->
<span v-if='jurisdiction === "HOMOTBSBK"'>
<span v-else-if='jurisdiction === "HOMOTBSBK"'>
'{{$t('Submitted')}}'{{$t('or')}}'{{$t('alteration')}}'
</span>
<!-- 截止时间-->
<span v-if='jurisdiction === "HOMOJZSJ"'>
<span v-else-if='jurisdiction === "HOMOJZSJ"'>
'{{$t('CollectionInitiated')}}'
</span>
<!-- 分配填写人 -->
<span v-if='jurisdiction === "SDTFPTXR"'>
<span v-else-if='jurisdiction === "SDTFPTXR"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<!-- 引用参数-->
<span v-if='jurisdiction === "DREYYCS"'>
<span v-else-if='jurisdiction === "DREYYCS"'>
'{{$t('completed')}}'{{$t('or')}}'{{$t('ReturnedEngineer')}}'
</span>
<!-- 退回-->
<span v-if='jurisdiction === "homoTH"'>
<span v-else-if='jurisdiction === "homoTH"'>
{{$t('Submitted')}}
</span>
<span v-if='jurisdiction === "sdtTH"'>
<span v-else-if='jurisdiction === "sdtTH"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<span v-if='jurisdiction === "dreTH"'>
<span v-else-if='jurisdiction === "dreTH"'>
'{{$t('completed')}}'{{$t('or')}}'{{$t('ReturnedEngineer')}}'
</span>
<!-- 强制撤回-->
<span v-if='jurisdiction === "homoQZTH"'>
<span v-else-if='jurisdiction === "homoQZTH"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<span v-if='jurisdiction === "sdtQZTH"'>
<span v-else-if='jurisdiction === "sdtQZTH"'>
{{$t('completed')}}
</span>
<span v-if='jurisdiction === "dreQZTH"'>
<span v-else-if='jurisdiction === "dreQZTH"'>
{{$t('Submitted')}}
</span>
{{$t('timeoperation')}}
@@ -363,6 +371,7 @@
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
import { mapGetters } from 'vuex'
export default {
name: 'ParameterItemCollectionList',
@@ -502,18 +511,44 @@
},
mounted() {
this.GetgetLoginUserType()
setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
}, 10000)
this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
document.title = `${this.paramsManifest.title}-` + this.$t('ParameteItemCollectionList')
},
methods: {
...mapGetters(['userInfo']),
handleCancelRoleSwitching() {
this.visibleRoleSwitching = false
},
handleOkRoleSwitching() {
this.visibleRoleSwitching = false
this.currentPersonRole = this.formInlineRoleSwitching.roleSwitchingCode
localStorage.setItem('currentPersonRole', JSON.stringify(this.formInlineRoleSwitching.roleSwitchingCode))
this.selectedRowKeysValue = []
this.$refs.ruleFormRoleSwitching.validate(valid => {
if (valid) {
let query = {
userType: this.formInlineRoleSwitching.roleSwitchingCode,
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
userId: this.userInfo().id
}
this.confirmLoadingRoleSwitching = true
postAction('/params/userTypeLog/edit', query).then((res) => {
if (res.success) {
this.currentPersonRole = this.formInlineRoleSwitching.roleSwitchingCode
this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
localStorage.setItem('currentPersonRole', JSON.stringify(this.formInlineRoleSwitching.roleSwitchingCode))
this.selectedRowKeysValue = []
} else {
this.confirmLoadingRoleSwitching = false
this.$message.warning(this.$t('operationFailed'))
}
})
}
})
},
roleSwitchingClick() {
this.visibleRoleSwitching = true
@@ -792,13 +827,13 @@
}
return flag
},
LoginUserType(val, currentPersonRole) {
LoginUserType(val, currentPersonRole, userType) {
this.RoleType = []
if (this.currentPersonRole == '') {
this.currentPersonRole = val.length >= 1 ? val[0].value : ''
this.currentPersonRole = currentPersonRole || userType || val[0].value
}
this.RoleType = val
this.formInlineRoleSwitching.roleSwitchingCode = currentPersonRole || val[0].value
this.formInlineRoleSwitching.roleSwitchingCode = currentPersonRole || userType || val[0].value
this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching }
},
// 表格所选中得行内容
@@ -843,12 +878,12 @@
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(res.data.result)
_this.$message.success(this.$t('OperationSuccessful'))
this.areaVisibleFreeze = false
this.$refs.CollectionTabel.getTableList()
} else {
this.textLoading = false
_this.$message.warning(res.data.result)
_this.$message.warning(this.$t('operationFailed'))
}
})
.catch((error) => {
@@ -954,6 +989,7 @@
} else if (homoJurisdictionSynchronousLibrary == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'HOMOTBSBK'
this.NoEngineer = 1
}
},
// 同步上报库
@@ -969,41 +1005,103 @@
handleSubmit() {
// 填写人 权限
let dreJurisdictionSubmit = this.dreJurisdictionSubmit()
console.log(dreJurisdictionSubmit)
if (dreJurisdictionSubmit == 1) {
this.ishandleSubmit()
} else if (dreJurisdictionSubmit == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'DREYYCS'
this.NoEngineer = 1
}
},
getDataSource(data) {
this.dataSource = data
},
handlePreservation(num) {
let _this = this
let postDate = []
let data = JSON.parse(JSON.stringify(this.dataSource))
let selectedRowKeysValue = []
data.forEach(res => {
if (res.state == 'Wait Fill' || res.state == '待填写') {
selectedRowKeysValue.push(res)
}
})
for (let i = 0; i < selectedRowKeysValue.length; i++) {
let postDateobj = {}
let itemIn = Object.keys(selectedRowKeysValue[i])
for (let j = 0; j < itemIn.length; j++) {
if (itemIn[j] !== 'sdt') {
if (selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
}
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
}
}
}
}
}
postDateobj.id = selectedRowKeysValue[i].id
postDate.push(postDateobj)
}
let configDataList = { configDataList: postDate }
if (selectedRowKeysValue && selectedRowKeysValue.length > 0) {
if (num && num == 1) {
this.textLoading = true
}
postAction('/params/collectManifest/save', configDataList).then((res) => {
if (res.success) {
if (num && num == 1) {
_this.$message.success(_this.$t('OperationSuccessful'))
this.textLoading = false
}
setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
}, 10000)
} else {
if (num && num == 1) {
_this.$message.warning(_this.$t('operationFailed'))
this.textLoading = false
}
}
})
}
},
// 提交数据
ishandleSubmit() {
let _this = this
let postDate = []
for (let i = 0; i < this.selectedRowKeysValue.length; i++) {
let selectedRowKeysValue = JSON.parse(JSON.stringify(this.selectedRowKeysValue))
for (let i = 0; i < selectedRowKeysValue.length; i++) {
let postDateobj = {}
let itemIn = Object.keys(this.selectedRowKeysValue[i])
let itemIn = Object.keys(selectedRowKeysValue[i])
for (let j = 0; j < itemIn.length; j++) {
if (itemIn[j] !== 'sdt') {
if (this.selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(this.selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = this.selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < this.selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (this.selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
if (selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
}
if (this.selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
}
if (!this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue && this.selectedRowKeysValue[i][itemIn[j]].list[k].isMust == '1'
&& this.selectedRowKeysValue[i][itemIn[j]].list[k].isLock == '0') {
this.$message.warning(this.selectedRowKeysValue[i].nioNumber + ',' + this.$t('requiredParametersEmpty'))
if (!selectedRowKeysValue[i][itemIn[j]].list[k].dataValue && selectedRowKeysValue[i][itemIn[j]].list[k].isMust == '1'
&& selectedRowKeysValue[i][itemIn[j]].list[k].isLock == '0') {
this.$message.warning(selectedRowKeysValue[i].nioNumber + ',' + this.$t('requiredParametersEmpty'))
return
}
}
}
}
}
postDateobj.id = this.selectedRowKeysValue[i].id
postDateobj.id = selectedRowKeysValue[i].id
postDate.push(postDateobj)
}
@@ -1045,6 +1143,7 @@
})
let _this = this
let param = { ids: _array.join(',') }
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/back',
method: 'post',
@@ -1063,14 +1162,17 @@
})
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(_this.$t('OperationSuccessful'))
_this.GetgetTableList()
_this.selectedRowKeysValue = []
} else {
this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
},
// 强制撤回权限
@@ -1090,6 +1192,7 @@
})
let _this = this
let param = { ids: _array.join(',') }
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/withdraw',
method: 'post',
@@ -1108,14 +1211,17 @@
})
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(_this.$t('OperationSuccessful'))
_this.GetgetTableList()
_this.selectedRowKeysValue = []
} else {
this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
},
// 分配填写人
@@ -1192,6 +1298,7 @@
this.$confirm({
content: _this.$t('ConfirmBatchDeletion'),
onOk() {
_this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/deleteBatch',
method: 'post',
@@ -1214,11 +1321,14 @@
_this.selectedRowKeys = []
_this.$refs.CollectionTabel.getData()
_this.$refs.CollectionTabel.getTableList()
_this.textLoading = false
} else {
_this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
_this.textLoading = false
})
}
})
@@ -321,6 +321,7 @@
DueDate: 'designDueDate',
remarks: 'designRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.designTaskDetailId,
PersonChargeFeedback: val.designPersonChargeFeedback
@@ -345,6 +346,7 @@
DueDate: 'prehomoDueDate',
remarks: 'prehomoRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.prehomoTaskDetailId,
PersonChargeFeedback: val.prehomoPersonChargeFeedback
@@ -369,6 +371,7 @@
DueDate: 'verifyDueDate',
remarks: 'verifyRemark',
projectName: this.$route.query.projectName,
targetMarket:this.$route.query.targetMarket,
projectNameId: this.$route.query.projectNameId,
primaryKeyId: val.verifyTaskDetailId,
PersonChargeFeedback: val.verifyPersonChargeFeedback
@@ -22,19 +22,19 @@
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text">
<div @click="handleAdd" class="operator-text" v-has="'params:manifest:add'">
<a-icon type="plus"/>
{{$t('addDetailList')}}
</div>
<div @click="handleModule" class="operator-text">
<div @click="handleModule" class="operator-text" v-has="'params:manifest:change'">
<a-icon type="bulb"/>
{{$t('changeExtension')}}
</div>
<div @click="handleCody" class="operator-text">
<div @click="handleCody" class="operator-text" v-has="'params:manifest:copy'">
<a-icon type="copy"/>
{{$t('copyParamDetailList')}}
</div>
<div @click="handleDel" class="operator-text">
<div @click="handleDel" class="operator-text" v-has="'params:manifest:deleteBatch'">
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
@@ -63,10 +63,11 @@
</span>
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="configure(record)">{{$t('configure')}}</a>
<a class="text-operation" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
<a class="text-operation" @click="historicalVersion(record)">{{$t('historicalVersion')}}</a>
<a class="text-operation" @click="configure(record)" v-has="'params:config:list'">{{$t('configure')}}</a>
<a class="text-operation" @click="edit(record)" v-has="'params:manifest:edit'">{{$t('edit')}}</a>
<a class="text-operation" @click="deleteLib(record)"
v-has="'params:manifest:delete'">{{$t('deleteLib')}}</a>
<a class="text-operation" @click="historicalVersion(record)" v-has="'params:manifest:history'">{{$t('historicalVersion')}}</a>
</span>
</a-table>
</div>
@@ -114,6 +115,7 @@
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '@/common/event'
import store from '@/store/'
export default {
name: 'TaskParameterCollection',
@@ -198,7 +200,8 @@
conAdd: 'params/config/addBatch',
conList: 'params/config/list',
changeExtension: 'params/manifest/changeExtension',
verifyConfig: 'params/manifest/verifyConfig'
verifyConfig: 'params/manifest/verifyConfig',
configurelist: 'params/manifest/getConfigFlag'
},
loading: false,
dataSource: [],
@@ -214,6 +217,7 @@
version: 0,
itemId: '', // 配置id
itemRow: {}, // 配置一行数据
configFlag: '',
historicalVisible: false,
historicalRow: {}, // 历史版本得数据
drawerVisible: false,
@@ -222,6 +226,22 @@
selectedRowKeysvalArray: []
}
},
created() {
if (store.getters.userInfo) {
this.$socketPublicOne.dispatch('webSocketInit')//初始化ws
}
},
watch: {
'$socketPublicOne.state.msg': {
//处理接收到的消息
handler: function(res) {
let that = this
if (res.data == '1'){
this.getlist()
}
}
}
},
mounted() {
this.getlist()
},
@@ -238,7 +258,7 @@
})
window.open(newUrl.href, '_blank')
} else {
_this.$message.success(_this.$t('NoConfigurationNotStart'))
_this.$message.warning(_this.$t('NoConfigurationNotStart'))
}
})
},
@@ -274,7 +294,7 @@
configure(item) {
this.itemId = item.id
this.itemRow = item
this.$refs.configureRef.addModel(item.id)
this.$refs.configureRef.addModel(item.id, item)
},
handleCancel(val) {
this.areaVisible = val
@@ -46,7 +46,7 @@
</div>
<a-form-model-item class="itemModel" prop="subtitle">
<a-input class="box-input"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.subtitle"
:placeholder="$t('PleaseEnter')+$t('subtitle')"/>
</a-form-model-item>
@@ -55,86 +55,100 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
<span class="title-text-text"
:title="$t('applicableSupplement')">{{$t('applicableSupplement')}}</span>
</div>
<a-form-model-item class="itemModel" prop="wvtaId">
<a-form-model-item class="itemModel" prop="applicableSupplement">
<a-input class="box-input"
:disabled="false"
v-model="formInline.wvtaId"
:placeholder="$t('PleaseEnter')+'WVTA ID'"/>
</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="title-text-text"
:title="$t('correspondingStandard')">{{$t('correspondingStandard')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'correspondingStandard'">
<a-input class="box-input"
:disabled="true"
v-model="formInline.correspondingStandard"
:placeholder="$t('PleaseEnter')+$t('correspondingStandard')"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>
</div>
<a-form-model-item class="itemModel" prop="implementType">
<j-dict-select-tag class="box-input" v-model="formInline.implementType"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"
@input="handleInput('implementType')"
:placeholder="$t('PleaseSelect')+$t('implementationCategory')"
:type="'select'"
:triggerChange="false" :dictCode="'implement_type'"/>
</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="title-text-text"
:title="$t('vehicleInProductionDate')">{{$t('vehicleInProductionDate')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'implementTime'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('vehicleInProductionDate')"
:getCalendarContainer="(trigger) => trigger.parentNode"
@change="dateChange({db_field_name:'implementTime'})"
format="YYYY-MM-DD"
v-model="formInline.implementTime"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('ImplementationDate')">{{$t('ImplementationDate')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:getCalendarContainer="(trigger) => trigger.parentNode"
:placeholder="$t('PleaseSelect')+$t('ImplementationDate')"
@change="dateChange({db_field_name:'xin1Che1Xing2Shi2Shi1Ri4Qi1'})"
format="YYYY-MM-DD"
v-model="formInline.xin1Che1Xing2Shi2Shi1Ri4Qi1"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"
style="width: 100%"/>
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.applicableSupplement"
:placeholder="$t('PleaseEnter')+$t('applicableSupplement')"/>
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="wvtaId">-->
<!-- <a-input class="box-input"-->
<!-- :disabled="false"-->
<!-- v-model="formInline.wvtaId"-->
<!-- :placeholder="$t('PleaseEnter')+'WVTA ID'"/>-->
<!-- </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="title-text-text"-->
<!-- :title="$t('correspondingStandard')">{{$t('correspondingStandard')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" :prop="'correspondingStandard'">-->
<!-- <a-input class="box-input"-->
<!-- :disabled="true"-->
<!-- v-model="formInline.correspondingStandard"-->
<!-- :placeholder="$t('PleaseEnter')+$t('correspondingStandard')"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="implementType">-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.implementType"-->
<!-- :disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"-->
<!-- @input="handleInput('implementType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('implementationCategory')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'implement_type'"/>-->
<!-- </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="title-text-text"-->
<!-- :title="$t('vehicleInProductionDate')">{{$t('vehicleInProductionDate')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" :prop="'implementTime'">-->
<!-- <a-date-picker class="box-input"-->
<!-- :placeholder="$t('PleaseSelect')+$t('vehicleInProductionDate')"-->
<!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
<!-- @change="dateChange({db_field_name:'implementTime'})"-->
<!-- format="YYYY-MM-DD"-->
<!-- v-model="formInline.implementTime"-->
<!-- :disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"-->
<!-- style="width: 100%"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text" :title="$t('ImplementationDate')">{{$t('ImplementationDate')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel">-->
<!-- <a-date-picker class="box-input"-->
<!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
<!-- :placeholder="$t('PleaseSelect')+$t('ImplementationDate')"-->
<!-- @change="dateChange({db_field_name:'xin1Che1Xing2Shi2Shi1Ri4Qi1'})"-->
<!-- format="YYYY-MM-DD"-->
<!-- v-model="formInline.xin1Che1Xing2Shi2Shi1Ri4Qi1"-->
<!-- :disabled="formInline.roleCode == 0 || formInline.roleCode == 1 ? false : true"-->
<!-- 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">
@@ -144,7 +158,8 @@
</div>
<a-form-model-item class="itemModel-multi" prop="attestationType">
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.homologationEngineerId == userInfoQuery.id) ? false : true"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_type'"/>
@@ -154,13 +169,14 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCode == 0">*</span>
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text"
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="attestationRank">
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.homologationEngineerId == userInfoQuery.id) ? false : true"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_rank'"/>
@@ -172,24 +188,24 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCode == 0">*</span>
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="dutyTerritory">
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
@change="dutyTerritoryChange"
:disabled="formInline.roleCode == 0 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<a-col :span="12" v-if="formInline.roleCodeIndex == 0">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCode == 0">*</span>
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'regulationOwnerId'">
@@ -197,7 +213,7 @@
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
:disabled="formInline.roleCode == 0 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.regulationOwnerId">
<a-select-option v-for="(item, key) in regulatoryEngineerList"
:key="key"
@@ -211,11 +227,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCode == 0">*</span>
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'homologationEngineerId'">
@@ -223,7 +239,7 @@
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="formInline.roleCode == 0 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.homologationEngineerId">
<a-select-option v-for="(item, key) in certificationEngineerList"
:key="key"
@@ -239,7 +255,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCode == 0">*</span>
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'engineeringInterfacePerson'">
@@ -247,7 +263,7 @@
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="formInline.roleCode == 0 ? false : true"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.engineeringInterfacePerson">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="key"
@@ -262,58 +278,52 @@
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
</div>
<a-form-model-item class="itemModel-multi" prop="region">
<!-- <a-input class="box-input"-->
<!-- :disabled="true"-->
<!-- v-model="formInline.region_dictText"/>-->
<j-multi-select-tag class="box-input" v-model="formInline.region"
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
:type="'select'"
:triggerChange="false" :dictCode="'region'"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('applicableSupplement')">{{$t('applicableSupplement')}}</span>
</div>
<a-form-model-item class="itemModel" prop="applicableSupplement">
<a-input class="box-input"
:disabled="false"
v-model="formInline.applicableSupplement"
:placeholder="$t('PleaseEnter')+$t('applicableSupplement')"/>
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel-multi" prop="region">-->
<!-- &lt;!&ndash; <a-input class="box-input"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="true"&ndash;&gt;-->
<!-- &lt;!&ndash; v-model="formInline.region_dictText"/>&ndash;&gt;-->
<!-- <j-multi-select-tag class="box-input" v-model="formInline.region"-->
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'region'"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
</a-row>
<a-row :gutter="24">
<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-text" :prop="'remarks'">
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="false"
v-model="formInline.remark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<div class="header-text">
<!-- <a-row :gutter="24">-->
<!-- <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-text" :prop="'remarks'">-->
<!-- <a-textarea-->
<!-- style="width: 100%"-->
<!-- :placeholder="$t('PleaseEnter')+$t('remarks')"-->
<!-- :disabled="false"-->
<!-- v-model="formInline.remark" :rows="4"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
&nbsp;{{$t('confirmationOfDesignConformity')}}
</div>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -325,7 +335,6 @@
tree-node-filter-prop="title"
v-model="formInline.designDeliverableType"
:maxTagCount="1"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designDeliverableType ? true : false"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
@@ -349,7 +358,6 @@
</div>
<a-form-model-item class="itemModel" prop="designDeliverableTemplate">
<a-button type="primary" class="button-text"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designDeliverableType ? true : false"
@click="clickButtonToUpload('designDeliverableTemplate')">
{{ (formInline.designDeliverableTemplate === 'null' || formInline.designDeliverableTemplate === '' ||
formInline.designDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
@@ -359,7 +367,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -368,7 +380,7 @@
</div>
<a-form-model-item class="itemModel" prop="designInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="designInitiatorDisabled"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
allowClear
@@ -398,7 +410,6 @@
</div>
<a-form-model-item class="itemModel" prop="designDutyId">
<a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"
:disabled="designDutyIdDisabled"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
allowClear
@@ -421,7 +432,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -435,13 +450,16 @@
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.designDueDate"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designDueDate ? true : false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -452,16 +470,23 @@
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designRemark ? true : false"
v-model="formInline.designRemark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<div class="header-text">
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
&nbsp;{{$t('PrehomoConfirmation')}}
</div>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -473,7 +498,6 @@
tree-node-filter-prop="title"
v-model="formInline.prehomoDeliverableType"
:maxTagCount="1"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
@@ -498,7 +522,6 @@
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">
<a-button type="primary" class="button-text"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"
@click="clickButtonToUpload('prehomoDeliverableTemplate')">
{{ (formInline.prehomoDeliverableTemplate === 'null' || formInline.prehomoDeliverableTemplate === ''
||
@@ -509,7 +532,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -518,7 +545,7 @@
</div>
<a-form-model-item class="itemModel" prop="prehomoInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="prehomoInitiatorIdDisabled"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
@@ -551,7 +578,6 @@
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="prehomoDutyIdDisabled"
v-model="formInline.prehomoDutyId">
<a-select-option v-for="(item, key) in prehomoDutyList"
:key="key"
@@ -571,7 +597,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -585,13 +615,16 @@
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.prehomoDueDate"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDueDate ? true : false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -602,16 +635,23 @@
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoRemark ? true : false"
v-model="formInline.prehomoRemark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<div class="header-text">
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
&nbsp;{{$t('verificationAndConformityconfirmation')}}
</div>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -623,7 +663,6 @@
tree-node-filter-prop="title"
v-model="formInline.verifyDeliverableType"
:maxTagCount="1"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyDeliverableType ? true : false"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
@@ -648,7 +687,6 @@
</div>
<a-form-model-item class="itemModel" prop="verifyDeliverableTemplate">
<a-button type="primary" class="button-text"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyDeliverableType ? true : false"
@click="clickButtonToUpload('verifyDeliverableTemplate')">
{{ (formInline.verifyDeliverableTemplate === 'null' || formInline.verifyDeliverableTemplate === '' ||
formInline.verifyDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
@@ -658,7 +696,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -670,7 +712,7 @@
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="verifyInitiatorIdDisabled"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.verifyInitiatorId">
<a-select-option v-for="(item, key) in verifyInitiatorList"
:key="key"
@@ -700,7 +742,6 @@
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="verifyDutyIdDisabled"
v-model="formInline.verifyDutyId">
<a-select-option v-for="(item, key) in verifyDutyList"
:key="key"
@@ -720,7 +761,11 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -734,13 +779,16 @@
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.verifyDueDate"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyDueDate ? true : false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -751,7 +799,6 @@
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyRemark ? true : false"
v-model="formInline.verifyRemark" :rows="4"/>
</a-form-model-item>
</div>
@@ -773,6 +820,7 @@
import { getAction, postAction, putAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import moment from 'moment'
import { mapGetters } from 'vuex'
export default {
name: 'listEditModel',
@@ -855,13 +903,16 @@
prehomoDutyIdDisabled: false,
verifyDutyIdDisabled: false,
verifyInitiatorIdDisabled: false,
DeliverableTreeList: []
DeliverableTreeList: [],
userInfoQuery:{},
}
},
mounted() {
this.getDeliverableTree()
this.userInfoQuery = this.userInfo()
},
methods: {
...mapGetters(['userInfo']),
getDeliverableTree() {
getAction('/sys/category/getDeliverableTree', {}).then((res) => {
if (res.success) {
@@ -908,36 +959,22 @@
})
},
getDis(val) {
if (val.taskAffirmStatus != 'Not started' && !val.designInitiatorId) {
if (val.taskAffirmStatus != 'Not started') {
this.designInitiatorDisabled = true
} else if (val.roleCode == 0) {
this.designInitiatorDisabled = false
} else {
this.designInitiatorDisabled = true
}
if (val.taskAffirmStatus != 'Not started' && !val.designDutyId) {
this.designDutyIdDisabled = true
} else if (val.roleCode == 0) {
this.designDutyIdDisabled = false
} else {
this.designDutyIdDisabled = true
}
if (val.taskAffirmStatus != 'Not started' && !val.prehomoInitiatorId) {
if (val.taskAffirmStatus != 'Not started') {
this.prehomoInitiatorIdDisabled = true
} else if (val.roleCode == 0) {
this.prehomoInitiatorIdDisabled = false
} else {
this.prehomoInitiatorIdDisabled = true
}
if (val.taskAffirmStatus != 'Not started' && !val.prehomoDutyId) {
this.prehomoDutyIdDisabled = true
} else if (val.roleCode == 0) {
this.prehomoDutyIdDisabled = false
} else {
this.prehomoDutyIdDisabled = true
}
if (val.taskAffirmStatus != 'Not started' && !val.verifyDutyId) {
if (val.taskAffirmStatus != 'Not started') {
this.verifyDutyIdDisabled = true
} else if (val.roleCode == 0) {
this.verifyDutyIdDisabled = false
@@ -945,13 +982,6 @@
this.verifyDutyIdDisabled = true
}
if (val.taskAffirmStatus != 'Not started' && !val.verifyInitiatorId) {
this.verifyInitiatorIdDisabled = true
} else if (val.roleCode == 0) {
this.verifyInitiatorIdDisabled = false
} else {
this.verifyInitiatorIdDisabled = true
}
},
getProject(row, res, callback) {
//设计符合性确认-发起人
@@ -161,7 +161,11 @@
>
<span slot="operation" slot-scope="text,record">
<a class="text-operation"
v-if="(record.inventoryAffirmStatus == 'List to confirm' && (record.roleCode == 1 || record.roleCode == 2 || record.roleCode == 4)) || record.roleCode == 0"
v-if="(record.inventoryAffirmStatus == 'List to confirm' &&
((record.roleCode == 1 && !record.regulationOwnerSubmitStatus) ||
(record.roleCode == 2 && !record.homologationEngineerSubmitStatus) ||
(record.roleCode == 4 && !record.regulationOwnerSubmitStatus && !record.homologationEngineerSubmitStatus)))
|| record.roleCode == 0"
@click="edit(record)">
{{ $t('edit') }}
</a>
@@ -383,6 +387,7 @@
export default {
name: 'listOfRegulations',
props:['areaOfResponsibilityList'],
components: {
ImportFile,
listAddModel,
@@ -826,7 +831,61 @@
value: 'engineeringInterfacePerson',
valueName: 'engineeringInterfacePersonName',
text: this.$t('engineeringInterfacePerson')
}
},
{
type: '',
value: 'inventoryAffirmStatus',
text: this.$t('listConfirmationStatus'),
options:[
{
value:'Not started',
key:'Not started',
label:this.$t('notLaunch'),
},
{
value:'List to confirm',
key:'List to confirm',
label:this.$t('toBeConfirmed'),
},
{
value:'Accepted',
key:'Accepted',
label:this.$t('accept'),
},
{
value:'Rejected',
key:'Rejected',
label:this.$t('refuse'),
},
],
},
{
type: '',
value: 'taskAffirmStatus',
text: this.$t('taskAffirmStatus'),
options:[
{
value:'Not started',
key:'Not started',
label:this.$t('notLaunch'),
},
{
value:'List to confirm',
key:'List to confirm',
label:this.$t('toBeConfirmed'),
},
{
value:'Accepted',
key:'Accepted',
label:this.$t('accept'),
},
{
value:'Rejected',
key:'Rejected',
label:this.$t('refuse'),
},
],
},
],
visibleRoleSwitching: false,
confirmLoadingRoleSwitching: false,
@@ -840,7 +899,9 @@
trigger: 'change'
}
]
}
},
detailedSuccessList: [],
detailedWarningList: []
}
},
@@ -851,6 +912,9 @@
this.getRoleByUserId(() => {
this.getAndUserId()
})
if (this.areaOfResponsibilityList && this.areaOfResponsibilityList.dutyTerritory) {
this.queryParam.dutyTerritory = this.areaOfResponsibilityList.dutyTerritory
}
// } else {
// this.isDisplay = false
// }
@@ -1195,6 +1259,16 @@
}
},
edit(item) {
let roleCodeIndex
if (this.isDisplay) {
roleCodeIndex = 0
} else {
roleCodeIndex = 4
}
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.formInlineRoleSwitching.roleSwitchingCode == '12') {
roleCodeIndex = 0
}
item.roleCodeIndex = roleCodeIndex
this.$refs.editModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
deleteLib(val) {
@@ -1279,28 +1353,41 @@
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let isTrue = true
this.detailedSuccessList = []
this.detailedWarningList = []
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') {
if (this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
isTrue = true
this.detailedSuccessList.push(this.dataSource[i])
} else {
this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
isTrue = false
return
this.detailedWarningList.push( < div > { this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification') } < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
// isTrue = false
// return
}
} else {
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
isTrue = false
return
this.detailedWarningList.push( < div > {this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected')} < /div>)
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
// isTrue = false
// return
}
}
}
}
if (isTrue) {
if (this.detailedSuccessList && this.detailedSuccessList.length > 0) {
this.visible = true
this.formInline = {}
} else {
let that = this
this.$warning({
content: (
< div >
{ that.detailedWarningList }
< /div>
)
})
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
@@ -1313,61 +1400,81 @@
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let isTrue = true
this.TaskSuccessList = []
this.TaskWarningList = []
let dataList = []
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].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'Rejected') &&
this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
if (this.dataSource[i].engineeringInterfacePerson) {
if (this.dataSource[i].verifyRemark) {
if (this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
&& this.dataSource[i].verifyInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConformityVerification'))
return
}
}
if (this.dataSource[i].prehomoRemark) {
if (this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
&& this.dataSource[i].prehomoInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConfirmedByPrehomo'))
return
}
}
if (this.dataSource[i].designRemark) {
if (this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
&& this.dataSource[i].designInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseDesignConformityConfirmation'))
return
}
}
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('theProjectContactEmpty'))
return
}
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('PleaseTaskConfirmationRejected'))
return
}
dataList.push(this.dataSource[i])
}
}
}
if (isTrue) {
for (let i = 0; i < dataList.length; i++) {
if ((dataList[i].taskAffirmStatus == 'Not started' || dataList.taskAffirmStatus == 'Rejected') &&
dataList[i].inventoryAffirmStatus == 'Accepted') {
if (dataList[i].engineeringInterfacePerson) {
if (dataList[i].verifyDeliverableType) {
if (dataList[i].verifyDueDate && dataList[i].verifyDutyId
&& dataList[i].verifyInitiatorId) {
} else {
this.TaskWarningList.push( < div > { dataList[i].serialNumber + this.$t('pleaseConformityVerification') } < /div>)
continue
// isTrue = false
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConformityVerification'))
// return
}
}
if (dataList[i].prehomoDeliverableType) {
if (dataList[i].prehomoDueDate && dataList[i].prehomoDutyId
&& dataList[i].prehomoInitiatorId) {
} else {
this.TaskWarningList.push( < div > { dataList[i].serialNumber + this.$t('pleaseConfirmedByPrehomo') } < /div>)
continue
// isTrue = false
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConfirmedByPrehomo'))
// return
}
}
if (dataList[i].designDeliverableType) {
if (dataList[i].designDueDate && dataList[i].designDutyId
&& dataList[i].designInitiatorId) {
} else {
this.TaskWarningList.push( < div > { dataList[i].serialNumber + this.$t('pleaseDesignConformityConfirmation') } < /div>)
continue
// isTrue = false
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseDesignConformityConfirmation'))
// return
}
}
this.TaskSuccessList.push(dataList[i])
} else {
this.TaskWarningList.push( < div > { dataList[i].serialNumber + this.$t('theProjectContactEmpty') } < /div>)
// isTrue = false
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('theProjectContactEmpty'))
// return
}
} else {
this.TaskWarningList.push( < div > { dataList[i].serialNumber + this.$t('PleaseTaskConfirmationRejected') } < /div>)
// isTrue = false
// this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('PleaseTaskConfirmationRejected'))
// return
}
}
if (this.TaskSuccessList && this.TaskSuccessList.length > 0) {
this.visible = true
this.formInline = {}
} else {
let that = this
this.$warning({
content: (
< div >
{ that.TaskWarningList }
< /div>
)
})
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
@@ -1377,8 +1484,11 @@
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
if (this.timeName == '清单') {
let selectedRowKeys = []
this.detailedSuccessList.forEach(res => {
selectedRowKeys.push(res.id)
})
let query = {
operatorType: 0,
ids: selectedRowKeys.join(','),
@@ -1397,26 +1507,34 @@
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
let that = this
if (this.detailedWarningList.length > 0) {
this.$warning({
content: (
< div >
{ that.detailedWarningList }
< /div>
)
})
}
this.detailedSuccessList = []
this.detailedWarningList = []
})
} else {
let index = 0
for (let i = 0; i < this.dataSource.length; i++) {
for (let j = 0; j < selectedRowKeys.length; j++) {
if (this.dataSource[i].id == selectedRowKeys[j]) {
index++
this.dataSource[i].taskAffirmDueDate = this.formInline.taskAffirmDueDate
Object.keys(this.dataSource[i]).forEach(res => {
if (this.dataSource[i][res] && this.dataSource[i][res] instanceof String) {
this.dataSource[i][res] = this.dataSource[i][res].replace(/\"/g, '“')
this.dataSource[i][res] = this.dataSource[i][res].replace(/\'/g, '')
}
})
setTimeout(() => {
this.confirmLoading = true
this.startProcess(this.dataSource[i], index)
}, 500)
}
}
for (let i = 0; i < this.TaskSuccessList.length; i++) {
((i) => {
this.TaskSuccessList[i].taskAffirmDueDate = this.formInline.taskAffirmDueDate
Object.keys(this.TaskSuccessList[i]).forEach(res => {
if (this.TaskSuccessList[i][res] && this.TaskSuccessList[i][res] instanceof String) {
this.TaskSuccessList[i][res] = this.TaskSuccessList[i][res].replace(/\"/g, '“')
this.TaskSuccessList[i][res] = this.TaskSuccessList[i][res].replace(/\'/g, '')
}
})
setTimeout(() => {
this.confirmLoading = true
this.startProcess(this.TaskSuccessList[i], (i + 1))
}, 500)
})(i)
}
}
}
@@ -1449,12 +1567,22 @@
}
postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) {
if (index == this.selectedRowKeys.length) {
if (index == this.TaskSuccessList.length) {
this.visible = false
this.selectedRowKeys = []
this.$message.success(this.$t('OperationSuccessful'))
this.confirmLoading = false
this.getList()
let that = this
if (this.TaskWarningList.length > 0) {
this.$warning({
content: (
< div >
{ that.TaskWarningList }
< /div>
)
})
}
}
} else {
this.$message.warning(this.$t('operationFailed'))
@@ -92,6 +92,8 @@
<PersonnelSelection
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
:personneQuery="formInline"
:isDelete='true'
@deleteData='deleteData'
@change="PersonnelSelectionChange"
v-model="formInline.lawEngineerName"/>
</a-form-model-item>
@@ -110,6 +112,8 @@
<PersonnelSelection
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
:personneQuery="formInline"
:isDelete='true'
@deleteData='deleteData'
@change="PersonnelSelectionChange"
v-model="formInline.engineeringInterfacePersonName"/>
</a-form-model-item>
@@ -317,6 +321,10 @@
}
})
},
deleteData(name){
this.formInline[name] = ''
this.formInline = {...this.formInline}
},
getData() {
this.visible = true
this.getList()
@@ -98,6 +98,9 @@
this.visible = false
},
areaOfResponsibilityClick(item) {
if (this.queryParam.operatorType == 'queryListingToConfirmStatistics' || this.queryParam.operatorType == 'queryTaskToConfirmStatistics'){
item.isListing = '1'
}
this.$emit('responsibility', item)
}
}
@@ -5,7 +5,7 @@
class='tag-module'
ref='ruleForm'
:model='formData'
:rules='rules'
:rules="rules"
:label-col='labelCol'
:wrapper-col='wrapperCol'
>
@@ -24,21 +24,57 @@
</a-row>
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>
<a-form-model-item class='itemModel' prop='region'>
<div class="box-title-text" style="margin-left: -58px;">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<!-- <a-input-->
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
<!-- v-model='form.paramsTemplateName'/>-->
<j-dict-select-tag class='box-input' v-model='form.region'
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
:type="'select'"
:title="$t('PleaseSelect')+$t('zoneOfApplication')"
:triggerChange='false' :dictCode="'region'"/>
</a-form-model-item>
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>-->
<!-- <a-form-model-item class='itemModel' prop='region'>-->
<!-- <j-dict-select-tag class='box-input' v-model='form.region'-->
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
<!-- :type="'select'"-->
<!-- :triggerChange='false' :dictCode="'region'"/>-->
<!-- </a-form-model-item>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='9'>
<a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>
<a-input
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
v-model='form.paramsTemplateName'/>
</a-form-model-item>
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('parameterTemplate')">{{$t('parameterTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<a-input
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
:title="$t('PleaseSelect')+$t('parameterTemplate')"
v-model='form.paramsTemplateName'/>
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>-->
<!-- <a-input-->
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
<!-- v-model='form.paramsTemplateName'/>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='6' style='margin-top: 5px'>
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
@@ -346,6 +382,89 @@
color: red;
margin-right: 4px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
height: 40px;
margin-bottom: 24px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.header-text {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
}
.formAdd {
margin-bottom: 40px;
}
.button-text {
height: 38px;
width: calc(100% - 100px);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
color: #00B3BE;
}
.button-text-text {
position: absolute;
right: -10px;
top: -21px;
display: inline-block;
padding: 6px;
border-radius: 50%;
background: red;
text-align: center;
line-height: 6px;
color: #fff;
}
</style>
<style lang='less'>
.area-module {
@@ -95,9 +95,9 @@
<div class="title-text">
<!-- <span class="title-text-text" :title="$t('Required')">{{$t('Required')}}</span>-->
</div>
<a-button style="margin-right: .8rem" @click="addConfiguration(index)">{{$t('addConfiguration')}}
<a-button style="margin-right: .8rem" @click="addConfiguration(index)" :loading="loading" v-has="'params:config:add'">{{$t('addConfiguration')}}
</a-button>
<a-button @click="deleteConfiguration(item.id,index)" type="primary" :loading="confirmLoading">
<a-button @click="deleteConfiguration(item.id,index)" v-has="'params:config:delete'" type="primary" :loading="confirmLoading">
{{$t('deleteConfiguration')}}
</a-button>
</div>
@@ -146,6 +146,7 @@
formInline: {},
confirmLoading: false,
visible: false,
loading:false,
rules: {
// nioNumber:[
// { required: true, message: this.$t('PleaseEnter')+this.$t('NiONumber'), trigger: 'change' },
@@ -155,6 +156,7 @@
projectNameList: [],
title: '',
stateOne: '',
conFlag:'',
contentList: [],
paramsConfigEOList: [
{
@@ -174,6 +176,7 @@
},
mounted() {
},
methods: {
getNameList() {
@@ -185,12 +188,13 @@
}
})
},
addModel(id) {
addModel(id,item) {
this.paramsConfigEOList = []
this.visible = true
this.title = this.$t('MaintainConfigureInfo')
this.formInline = {}
this.getconList(id)
},
getconList(id) {
getAction(`${this.url.conList}?paramsManifestId=${id}`, {}).then((res) => {
@@ -217,18 +221,29 @@
})
},
addConfiguration(item) {
if (this.itemRow.configFlag) {
this.paramsConfigEOList.splice(item.displaySeq + 1, 0, {
id: '',
configName: '', // 配置名称
version: '', // 版本
carType: '', // 车型
battery: '', // 电池
motor: '' // 电机
})
} else {
this.$message.warning(this.$t('Theselectedconfiguration'))
}
this.loading = true
getAction(this.url.configurelist, { paramsManifestId: this.itemRow.id }).then((res) => {
if (res.success) {
this.conFlag = res.result
if (this.conFlag == true) {
this.paramsConfigEOList.splice(item.displaySeq + 1, 0, {
id: '',
configName: '', // 配置名称
version: '', // 版本
carType: '', // 车型
battery: '', // 电池
motor: '' // 电机
})
this.loading = false
} else {
this.loading = false
this.$message.warning(this.$t('Theselectedconfiguration'))
}
} else {
this.$message.warning(res.message)
}
})
},
deleteConfiguration(displaySeq, index) {
if (this.paramsConfigEOList.length === 1) {
@@ -252,6 +267,8 @@
},
handleCancel() {
this.visible = false
this.$refs.ruleForm.clearValidate()
this.conFlag = ''
},
handleSubmit() {
let flag = 1