You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
395 lines
13 KiB
395 lines
13 KiB
<template>
|
|
<div class="customer-css">
|
|
<el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" width="350px" style="height: 420px;" class="customer-dialog">
|
|
|
|
<el-form :inline="true" label-position="top" label-width="80px">
|
|
<!-- 标签自定义信息 -->
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.customerId>
|
|
<el-input v-model="pageData.customerId" :readonly="labelNoReadOnly" style="width: 120px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.addressNo>
|
|
<el-input v-model="pageData.addressNo" :readonly="labelNoReadOnly" style="width: 120px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.labelType>
|
|
<el-select v-model="pageData.labelType" disabled style="width: 150px;" >
|
|
<el-option label="外箱标签" value="外箱标签"></el-option>
|
|
<el-option label="卷标签" value="卷标签"></el-option>
|
|
</el-select >
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item">
|
|
<span slot="label" style="" @click="getBaseList(1099)"><a herf="#">{{labels.labelNo}}</a></span>
|
|
<el-input v-model="pageData.labelNo" :readonly="labelNoReadOnly" @blur="checkLabelNoMethod()" style="width: 120px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<!-- <el-row>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.labelClass>
|
|
<el-select v-model="pageData.labelClass" disabled style="width: 150px;" >
|
|
<el-option label="打印软件" value="打印软件"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.labelName>
|
|
<el-input v-model="pageData.labelName" disabled style="width: 120px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>-->
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" style="margin-top: -8px;">
|
|
<span>{{labels.subLabelFlag}}</span>
|
|
<el-checkbox v-model="pageData.subLabelFlag" @change="changeParentLabelNo()" true-label="Y" false-label="N"
|
|
style="margin-top: 28px; margin-left: 10px;"></el-checkbox>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item class="customer-item" :label=labels.parentLabelNo>
|
|
<el-input v-model="pageData.parentLabelNo" :disabled="pageData.subLabelFlag !== 'Y'" style="width: 120px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item class="customer-item" :label=labels.remark>
|
|
<el-input v-model="pageData.remark" style="width: 310px;" ></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="saveLabelSetting()">{{ buttons.saveButton }}</el-button>
|
|
<el-button type="primary" @click="closeDialog">{{buttons.closeButton}}</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!--列表的组件-->
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
insertLabelSetting,
|
|
updateLabelSetting,
|
|
checkLabelNo,
|
|
} from '@/api/labelSetting/com_add_update_customer_label.js';
|
|
|
|
import {
|
|
searchSysLanguagePackList,
|
|
searchSysLanguageParam,
|
|
searchFunctionButtonList,
|
|
saveButtonList,
|
|
searchSysLanguage,
|
|
searchLanguageListByLanguageCode,
|
|
saveSysLanguageOne,
|
|
searchPageLanguageData,
|
|
removerLanguage,
|
|
saveSysLanguageList
|
|
} from "@/api/sysLanguage.js";
|
|
|
|
|
|
/* 引入组件 */
|
|
import Chooselist from '@/views/modules/common/Chooselist'/* 列表组件 */
|
|
var functionId = 'C10000053';
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
titleCon: '客户标签定义维护',
|
|
showDefault: false,
|
|
visible: false,
|
|
userId: this.$store.state.user.name,
|
|
pageData: {
|
|
site: this.$store.state.user.site,
|
|
username: this.$store.state.user.name,
|
|
customerId: '',
|
|
addressNo: '',
|
|
labelNo: '',
|
|
labelType: '',
|
|
labelName: '',
|
|
labelClass: '',
|
|
subLabelFlag: 'N',
|
|
parentLabelNo: '',
|
|
remark: '',
|
|
addFlag: false,
|
|
},
|
|
labelNoReadOnly: false,
|
|
dataListLoading: false,
|
|
buttons: {
|
|
saveButton: '保存',
|
|
closeButton: '关闭',
|
|
},
|
|
queryButton: {
|
|
functionId: functionId,
|
|
table_id: '*',
|
|
languageCode: this.$i18n.locale,
|
|
objectType: 'button'
|
|
},
|
|
labels: {
|
|
site: '工厂编号:',
|
|
customerId: '客户编码:',
|
|
addressNo: '地址编码:',
|
|
titleCon: '客户标签定义维护',
|
|
labelNo: '标签编号:',
|
|
labelType: '标签类型:',
|
|
labelName: '报表文件名:',
|
|
labelClass: '标签种类:',
|
|
subLabelFlag: '子报表:',
|
|
parentLabelNo: '上级标签编号:',
|
|
remark: '备注:',
|
|
confirmLabel: '确认',
|
|
cancelLabel: '取消',
|
|
tipsLabel: '提示',
|
|
labelNoCantBeNull: '标签编号不能为空!',
|
|
labelTypeCantBeNull: '标签类型不能为空!',
|
|
labelNameCantBeNull: '报表文件名不能为空!',
|
|
},
|
|
queryLabel: {
|
|
functionId: functionId,
|
|
table_id: '*',
|
|
languageCode: this.$i18n.locale,
|
|
objectType: 'label'
|
|
},
|
|
}
|
|
},
|
|
methods: {
|
|
//初始化组件的参数
|
|
init(currentRow) {
|
|
//初始化参数
|
|
this.pageData = JSON.parse(JSON.stringify(currentRow));
|
|
//统一子报表标识和值,避免页面展示为*
|
|
this.pageData.subLabelFlag = this.pageData.subLabelFlag === 'Y' ? 'Y' : 'N';
|
|
this.pageData.parentLabelNo = this.getDisplayParentLabelNo(this.pageData.parentLabelNo, this.pageData.subLabelFlag);
|
|
//打开页面
|
|
this.visible = true;
|
|
//判断是否是新增
|
|
if(this.pageData.addFlag == 'Y'){
|
|
this.labelNoReadOnly = false;
|
|
}else{
|
|
this.labelNoReadOnly = true;
|
|
}
|
|
//重置人员信息
|
|
this.pageData.username = this.userId;
|
|
//判断是否启用多语言
|
|
//this.getMultiLanguageList();
|
|
//重置标题
|
|
this.titleCon = this.labels.titleCon;
|
|
},
|
|
|
|
/*检验标签的编码*/
|
|
checkLabelNoMethod(){
|
|
checkLabelNo(this.pageData).then(({data}) => {
|
|
//判断是否查询到了
|
|
if(data && data.code == 200){
|
|
//设置参数
|
|
let labelSetting = data.resultRow;
|
|
this.pageData.labelType = labelSetting.labelType;
|
|
this.pageData.labelClass = labelSetting.labelClass;
|
|
this.pageData.labelName = labelSetting.labelName;
|
|
}else{
|
|
this.pageData.labelName = '';
|
|
this.pageData.labelNo = '';
|
|
this.pageData.labelType = '';
|
|
this.pageData.labelClass = '';
|
|
this.$message.error(data.msg);
|
|
}
|
|
})
|
|
},
|
|
|
|
/*子报表事件触发*/
|
|
changeParentLabelNo(){
|
|
//首选判断是否是选中状态
|
|
if(this.pageData.subLabelFlag === 'Y'){
|
|
this.pageData.parentLabelNo = '';
|
|
}else{
|
|
this.pageData.parentLabelNo = '';
|
|
}
|
|
},
|
|
|
|
/*根据子报表标识处理上级标签显示值*/
|
|
getDisplayParentLabelNo(parentLabelNo, subLabelFlag){
|
|
if(subLabelFlag !== 'Y'){
|
|
return '';
|
|
}
|
|
if(parentLabelNo == null || parentLabelNo === '*'){
|
|
return '';
|
|
}
|
|
return parentLabelNo;
|
|
},
|
|
|
|
/*构建提交参数*/
|
|
buildSubmitData(){
|
|
let submitData = JSON.parse(JSON.stringify(this.pageData));
|
|
submitData.customerId = (submitData.customerId || '').trim().toUpperCase();
|
|
submitData.addressNo = (submitData.addressNo || '').trim().toUpperCase();
|
|
submitData.labelNo = (submitData.labelNo || '').trim().toUpperCase();
|
|
submitData.labelType = (submitData.labelType || '').trim();
|
|
submitData.labelName = (submitData.labelName || '').trim();
|
|
submitData.remark = (submitData.remark || '').trim();
|
|
submitData.subLabelFlag = submitData.subLabelFlag === 'Y' ? 'Y' : 'N';
|
|
let parentLabelNo = (submitData.parentLabelNo || '').trim().toUpperCase();
|
|
submitData.parentLabelNo = submitData.subLabelFlag === 'Y' ? parentLabelNo : '*';
|
|
return submitData;
|
|
},
|
|
|
|
/*保存前校验*/
|
|
validateSubmitData(submitData){
|
|
if(!submitData.customerId){
|
|
this.$message.error('客户编码不能为空!');
|
|
return false;
|
|
}
|
|
if(!submitData.addressNo){
|
|
this.$message.error('地址编码不能为空!');
|
|
return false;
|
|
}
|
|
if(!submitData.labelNo){
|
|
this.$message.error(this.labels.labelNoCantBeNull);
|
|
return false;
|
|
}
|
|
if(!submitData.labelType){
|
|
this.$message.error(this.labels.labelTypeCantBeNull);
|
|
return false;
|
|
}
|
|
if(submitData.subLabelFlag === 'Y' && (!submitData.parentLabelNo || submitData.parentLabelNo === '*')){
|
|
this.$message.error('子报表必须维护上级标签编号!');
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
|
|
/*保存标签自定义的信息*/
|
|
saveLabelSetting(){
|
|
let submitData = this.buildSubmitData();
|
|
if(!this.validateSubmitData(submitData)){
|
|
return false;
|
|
}
|
|
//判断是否是新增标签自定义
|
|
if(this.pageData.addFlag === 'Y'){
|
|
this.insertLabelSettingData(submitData);
|
|
}else{
|
|
this.updateLabelSettingData(submitData);
|
|
}
|
|
},
|
|
|
|
/*数量失去焦点的事件*/
|
|
insertLabelSettingData(submitData){
|
|
insertLabelSetting(submitData).then(({data}) => {
|
|
if(data.code == 200){
|
|
this.$message.success(data.msg);
|
|
setTimeout(() => {
|
|
this.closeDialog();
|
|
}, 200);
|
|
}else{
|
|
this.$message.error(data.msg);
|
|
}
|
|
})
|
|
},
|
|
|
|
/*验证时长的参数*/
|
|
updateLabelSettingData(submitData){
|
|
updateLabelSetting(submitData).then(({data}) => {
|
|
if(data.code == 200){
|
|
this.$message.success(data.msg);
|
|
setTimeout(() => {
|
|
this.closeDialog();
|
|
}, 200);
|
|
}else{
|
|
this.$message.error(data.msg);
|
|
}
|
|
})
|
|
},
|
|
|
|
/*关闭modal*/
|
|
closeDialog(){
|
|
//刷新报工的页面
|
|
this.$emit('refreshPageTables');
|
|
//关闭当前的页面
|
|
this.visible = false;
|
|
},
|
|
|
|
/* 列表方法的回调 */
|
|
getBaseData(val) {
|
|
if (this.tagNo === 1099) {
|
|
//设置参数
|
|
this.pageData.labelNo = val.ReportID;
|
|
this.pageData.labelType = val.ReportFamily;
|
|
this.pageData.labelName = val.Reportfile;
|
|
this.pageData.labelClass = val.ReportType;
|
|
}
|
|
},
|
|
|
|
// 获取基础数据列表
|
|
getBaseList(val) {
|
|
this.tagNo = val
|
|
this.$nextTick(() => {
|
|
let strVal = ''
|
|
if (val === 1099) {
|
|
strVal = this.pageData.labelNo;
|
|
}
|
|
this.$refs.baseList.init(val, strVal)
|
|
})
|
|
},
|
|
|
|
/*getMultiLanguageList() {
|
|
//首先查询当前按钮的多语言
|
|
searchFunctionButtonList(this.queryButton).then(({data}) => {
|
|
if (data && data.code == 0) {
|
|
this.buttons = data.data
|
|
} else {
|
|
// saveButtonList(this.buttonList).then(({data}) => {
|
|
// })
|
|
}
|
|
});
|
|
//其次查询当前标签的多语言
|
|
searchFunctionButtonList(this.queryLabel).then(({data}) => {
|
|
if (data && data.code == 0 ) {
|
|
this.labels = data.data
|
|
} else {
|
|
// saveButtonList(this.buttonList).then(({data}) => {
|
|
// })
|
|
}
|
|
});
|
|
},*/
|
|
|
|
},
|
|
components: {
|
|
Chooselist, /* 选择的组件 */
|
|
},
|
|
watch: {
|
|
pageData: {
|
|
deep: true,
|
|
handler: function (newV, oldV) {
|
|
let labelNo = (this.pageData.labelNo || '').toUpperCase();
|
|
let parentLabelNo = (this.pageData.parentLabelNo || '').toUpperCase();
|
|
if(this.pageData.labelNo !== labelNo){
|
|
this.pageData.labelNo = labelNo;
|
|
}
|
|
if(this.pageData.parentLabelNo !== parentLabelNo){
|
|
this.pageData.parentLabelNo = parentLabelNo;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created() {
|
|
// this.factoryList()
|
|
// this.getLanguageList()
|
|
}
|
|
}
|
|
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
</style>
|