拆分条款详情修改

This commit is contained in:
caoyang
2022-04-09 20:24:46 +08:00
parent 7d9dc44461
commit e08332d385
11 changed files with 230 additions and 111 deletions
@@ -109,7 +109,7 @@
ClickEvent: 'backDocument'
}, //回传至文档库
{
text: this.$t('See'),
text: this.$t('view'),
ClickEvent: 'detailClick'
}, //查看
{
@@ -20,11 +20,11 @@
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-row :gutter="24">
<div v-for="(item,index) in dataList" :key="index">
<a-row :gutter="24" class="split-form-row">
<a-col :span="12" v-if="item.field_show_type === '1' || item.field_show_type === '11'">
<div class="box-title-text">
<a-col :span="12" v-for="(item,index) in dataList" :key="index">
<div class="box-title-text" v-if="item.field_show_type === '1' || item.field_show_type === '11'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -36,10 +36,10 @@
:placeholder="$t('PleaseEnter')+item.db_field_txt"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '2'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '2'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -51,10 +51,8 @@
v-model="formInline[item.db_field_name]" :max="99999999"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '3'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '3'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -68,10 +66,9 @@
:triggerChange="false" :dictCode="item.dict_field"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '4'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '4'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -84,9 +81,9 @@
:triggerChange="false" :dictCode="item.dict_field"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '5'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '5'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -101,9 +98,9 @@
<!-- :disabledDate="disabledDate"-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '6'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '6'">
<div class="title-text">
<span class="RequireddateChange" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -114,10 +111,9 @@
@change="onChange(item.db_field_name)"></a-range-picker>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '7'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '7'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -134,10 +130,9 @@
<!-- </span>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-else-if="item.field_show_type === '8'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '8'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -149,10 +144,9 @@
v-model="formInline[item.db_field_name]" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-else-if="item.field_show_type === '9' || item.field_show_type == 'sel_user'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '9' || item.field_show_type == 'sel_user'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -165,10 +159,9 @@
v-model="formInline[item.db_field_name]"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-else-if="item.field_show_type === '10'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === '10'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -181,10 +174,9 @@
v-model="formInline[item.db_field_name]"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === 'RADIO'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === 'RADIO'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -197,10 +189,9 @@
:type="'radio'" :triggerChange="false" :dictCode="item.dict_field"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === '0'">
<div class="box-title-text box-tree-text" :title="item.db_field_txt">
<div class="box-title-text box-tree-text" :title="item.db_field_txt" v-else-if="item.field_show_type === '0'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span>
@@ -218,10 +209,9 @@
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-else-if="item.field_show_type === 'CHECKBOX'">
<div class="box-title-text">
<div class="box-title-text" v-else-if="item.field_show_type === 'CHECKBOX'">
<div class="title-text">
<span class="Required" v-if="item.field_must_input == 1">*</span>
<span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
@@ -235,7 +225,7 @@
</a-form-model-item>
</div>
</a-col>
</div>
</a-row>
@@ -249,10 +239,10 @@
{{$t('Add')}}
</div>
</div>
<a-row :gutter="24" class="split-content" id="split-content" v-for="(item, index) in contentList" :key="index">
<a-row :gutter="24" class="split-content-row" id="split-content" v-for="(item, index) in contentList" :key="index">
<div class="split-row">
<div class="row-left">
<a-textarea v-if="item.type==='TEXT'" v-model="item.itemContent" :auto-size="true" :show-count="true" :maxlength="1000" :placeholder="$t('pleaseEnter')+$t('content')" />
<a-textarea v-if="item.type==='TEXT'" v-model="item.itemContent" :show-count="true" :maxlength="1000" :placeholder="$t('pleaseEnter')+$t('content')" />
<img v-if="item.type==='IMG'" :src="item.thumbUrl?item.thumbUrl:item.itemContent" alt="" @click="preImg(item)">
<div v-if="item.type==='TABLE'" v-html="item.itemContent" class="item-table"></div>
</div>
@@ -595,6 +585,8 @@
// }
},
mounted() {
this.visible=this.addVisible
// this.formInline=this.item
// console.log('form',this.formInline,this.item)
@@ -983,7 +975,7 @@
|| res.field_show_type === '11') {
rule.push({
max: res.db_length,
message: res.db_field_txt + '不能超出' + res.db_length + '个字符',
message: res.db_field_txt + this.$t('cantExeed') + res.db_length + this.$t('characters'),
trigger: 'blur'
})
}
@@ -1119,6 +1111,9 @@
margin-bottom: 20px;
text-align: right;
}
}
.split-content-row{
.split-row{
display: flex;
justify-content: space-between;
@@ -1264,6 +1259,11 @@
.ant-input-number{
width: 100%;
}
.split-form-row{
display: flex;
flex-wrap: wrap;
justify-content: start;
}
}
.split-img{
.ant-modal-body{
@@ -20,10 +20,19 @@
<template #title="{ key: treeKey, title, record }">
<a-dropdown :trigger="['contextmenu']">
<!-- <span>{{ title }}</span>-->
<span v-if="title.indexOf(searchValue) > -1" :title="title">
<span v-if="title.indexOf(searchValue) >= -1 " :title="title" class="expand-title">
{{ title.substr(0, title.indexOf(searchValue)) }}<span style="color: #f50">{{ searchValue }}</span>{{ title.substr(title.indexOf(searchValue) + searchValue.length) }}
</span>
<span v-else :title="title">{{ title }}</span>
<!-- <span v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)>18" :title="title">-->
<!-- {{title && title.length > 18?title.slice(0,17)+'...':title}}-->
<!-- </span>-->
<!-- <span v-else-if="title.indexOf(searchValue) >= -1 && title.length > 18 && title.indexOf(searchValue)<=18" :title="title">-->
<!-- {{ title.substr(0, title.indexOf(searchValue)) }}<span style="color: #f50">{{ title.indexOf(searchValue)+searchValue.length>18?searchValue.substr(0,18-title.indexOf(searchValue)) : searchValue }}</span>{{ title.indexOf(searchValue)+searchValue.length>18?'...': title.substr(title.indexOf(searchValue) + searchValue.length,18-title.indexOf(searchValue) - searchValue.length)+'...' }}-->
<!-- </span>-->
<span v-else :title="title">
{{title && title.length > 18?title.slice(0,17)+'...':title}}
</span>
<template #overlay>
<a-menu @click="({ key: menuKey }) => onContextMenuClick(treeKey, menuKey, record)">
<a-menu-item key="1" @click="orgAdd">{{$t('newNode')}}</a-menu-item>
@@ -81,6 +90,7 @@
</div>
<div class="split-detail-table">
<table-data
ref="splitDetailTabel"
:url="url"
:flag="'4'"
:OperationList="OperationList"
@@ -219,11 +229,11 @@
rules: {
name: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('clauseNo'), trigger: 'blur' },
{ min: 1, max: 20, message: this.$t('cantExeed') + '20' + this.$t('characters'), trigger: 'blur' },
{ min: 1, max: 200, message: this.$t('cantExeed') + '200' + this.$t('characters'), trigger: 'blur' },
],
itemName: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('clauseName'), trigger: 'blur' },
{ min: 1, max: 20, message: this.$t('cantExeed') + '20' + this.$t('characters'), trigger: 'blur' },
{ min: 1, max: 200, message: this.$t('cantExeed') + '200' + this.$t('characters'), trigger: 'blur' },
],
displaySeq: [
{ required: true, message: this.$t('PleaseEnter')+this.$t('serialNumber'), trigger: 'blur' },
@@ -270,23 +280,41 @@
deleteNode:false,
fullWidth:'',
parameter:{},
widthBrown:''
widthBrown:'',
creenWidth: document.body.clientWidth,
}
},
watch:{
deleteNode(){
},
screenWidth: {
immediate: true,
handler(newValue) {
// console.log(newValue)
}
}
},
computed:{
},
mounted() {
const that = this;
let client=''
let width=''
this.widthBrown = document.documentElement.offsetWidth || document.body.offsetWidth
let client = document.querySelector('.split-detail-table .ant-table-content').getBoundingClientRect()
let width = this.widthBrown - client.left
client = document.querySelector('.split-detail-table .ant-table-content').getBoundingClientRect()
width = this.widthBrown - client.left
document.querySelector('.split-detail-table .ant-table-content').style.width = width - 20 + 'px'
window.addEventListener('resize', () => {
that.screenWidth = window.screenWidth || document.body.clientWidth;
client = document.querySelector('.split-detail-table .ant-table-content').getBoundingClientRect()
// console.log('screenWidth',that.screenWidth)
width = that.screenWidth - client.left
document.querySelector('.split-detail-table .ant-table-content').style.width = width - 20 + 'px'
}, false);
this.infoId=this.$route.query.infoId
// console.log('info',this.$route.query)
@@ -329,6 +357,7 @@
return parentKey;
},
onExpand(expandedKeys){
// console.log('expandedKeys',expandedKeys)
this.expandedKeys = expandedKeys;
this.autoExpandParent = false;
},
@@ -359,6 +388,10 @@
if (res.success) {
this.data = this.toTree(res.result)
this.gData= [...this.data]
Object.assign(this, {
expandedKeys:this.expandedKeys,
autoExpandParent: true,
})
}
}).finally(()=>{
this.loading=false
@@ -521,8 +554,10 @@
if(res.success){
this.menuRightVisible=false
this.$message.success(this.$t('OperationSuccessful'))
this.onExpand(expandId)
// this.onExpand(expandId)
this.form={}
this.expandedKeys.push(this.nodeItem.id)
// console.log('expandedKeys1111',this.expandedKeys)
this.loadMenuData()
let queryParam={
menu_id:this.menuId,
@@ -633,6 +668,8 @@
.then((res) => {
if (res.data.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('selectClear')
this.selectClear()
// this.loadData()
this.loadMenuData()
let queryParam={
@@ -726,7 +763,13 @@
parameter: this.parameter
}
downloadFile('split/sarFileSplitItems/exportSplitInfoZip', name, query)
downloadFile('split/sarFileSplitItems/exportSplitInfoZip', name, query,this.selectClear)
},
selectClear() {
this.$refs.splitDetailTabel.selectedRowKeys = []
this.selectedRowKeys=[]
this.selectedRows=[]
this.selecIds=[]
},
//模板下载
handleDownManage(){
@@ -757,6 +800,7 @@
.then( (res) => {
if (res.data.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.selectClear()
this.loadMenuData()
let queryParam={
menu_id:this.menuId,
@@ -799,6 +843,7 @@
//批量设置确定提交
addFormClick(){
this.batSetVisible=false
this.selectClear()
let queryParam={
menu_id:this.menuId,
info_id: this.infoId,
@@ -1066,7 +1111,10 @@
}
},
}
},
beforeDestroy() {
window.removeEventListener('resize', {}, false);
},
}
</script>
@@ -1080,11 +1128,11 @@
display: flex;
justify-content: space-between;
.split-detail-left{
width: 260px;
padding-right: 20px;
border-right: 1px solid #E6E7EC;
.split-detail-left-tree{
width: 240px;
}
.menu-item{
padding: 2px 8px;
@@ -1185,17 +1233,33 @@
}
}
.split-detail-left{
.ant-tree-treenode-switcher-open{
.ant-tree-node-content-wrapper-normal{
width:200px;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.ant-tree-title{
}
}
.ant-tree-title{
span{
display: block;
width: 240px;
overflow:hidden;
text-overflow:ellipsis;
}
}
.ant-tree-child-tree{
.ant-tree-title{
span{
display: block;
width: 240px;
overflow:hidden;
text-overflow:ellipsis;
}
}
}
}
.split-detail-table{
.ant-table-body{
@@ -20,25 +20,25 @@
<!-- 模板下载-->
<div class="operator-select-type">
<span class="operator-file-type">文件类型:</span>
<a-select v-model="fileGroup" style="width: 100px">
<span class="operator-file-type">{{$t('fileType')}}</span>
<a-select v-model="fileGroup" :placeholder="$t('selectFileType')" class="file-type-select">
<a-select-option value="GSO" key="GSO">
GSO
</a-select-option>
<a-select-option value="Korean" key="Korean">
韩国
{{$t('Korea')}}
</a-select-option>
<a-select-option value="US" key="US">
美国
{{$t('America')}}
</a-select-option>
<a-select-option value="EU" key="EU">
欧洲
{{$t('Europe')}}
</a-select-option>
<a-select-option value="Japan" key="Japan">
日本
{{$t('Japan')}}
</a-select-option>
<a-select-option value="CN" key="CN">
中国
{{$t('China')}}
</a-select-option>
</a-select>
</div>
@@ -79,7 +79,7 @@
data(){
return{
visible:false,
fileGroup:'',
fileGroup:undefined,
tableSource:[], //列表数据
selectedRowKeys:[],
queryParams:{
@@ -192,7 +192,7 @@
},
//拆分
submitSplit(){
if(this.fileGroup.length == 0){
if(this.fileGroup.length == 0||this.fileGroup==undefined){
this.$message.warning(this.$t('selectFileType'))
}else if(this.rows&&this.rows.length>1){
this.$message.warning(this.$t('OnlyOneSelected'))
@@ -275,15 +275,22 @@
}
.operator-select{
margin-bottom: 20px;
margin-left: 60px;
/*margin-left: 60px;*/
.operator-file-type{
/*width: 100px;*/
min-width: 110px;
text-align: right;
line-height: 32px;
display: inline-block;
margin-right: 16px;
}
.operator-select-type{
display: flex;
justify-content: start;
.file-type-select{
min-width: 120px;
}
}
}
@@ -296,4 +303,13 @@
}
}
}
.operator-select-type{
.ant-select-selection{
height: 38px;
.ant-select-selection__rendered{
height: 38px;
line-height: 38px;
}
}
}
</style>