<template>
|
<div class="page-list-container">
|
<!--数据Table-->
|
<yrt-data-list :ref="dataListRef" :editor-ref="editorRef" :data-options="dataOptions" :fields.sync="dataListOptions.fields" :buttons="dataListOptions.buttons" :button-click="buttonClick" :data-list-selections.sync="dataListSelections" :auth-nodes="authNodes">
|
<template slot="common-column-slot" slot-scope="{row, col}">
|
<template v-if="['Enable'].indexOf(col.prop)>=0">
|
<template v-if="row[col.prop]==1">
|
<el-tag color="#7aaffe" style="color:white;border:0">
|
{{ $refs[dataListRef].translateText(col.prop, row[col.prop], col.dropdown_Id) }}
|
</el-tag>
|
</template>
|
<template v-else>
|
<el-tag color="#ffcc33" style="color:white;border:0">
|
{{ $refs[dataListRef].translateText(col.prop, row[col.prop]||0, col.dropdown_Id) }}
|
</el-tag>
|
</template>
|
</template>
|
<template v-else-if="col.prop==dataOptions.linkColumn">
|
<el-link type="primary" @click.native="()=>{linkEditor(row[dataOptions.idField]);}">{{ row[col.prop] }}</el-link>
|
</template>
|
<template v-else>
|
{{ row[col.prop] }}
|
</template>
|
</template>
|
</yrt-data-list>
|
|
<!--数据编辑器Editor-->
|
<yrt-editor :ref="editorRef" :data-list-ref="dataListRef" v-bind="editorOptions" :data-options="dataOptions" :action.sync="editorOptions.action" :visible.sync="editorOptions.config.visible" :detail-button-click="detailButtonClick" :auth-nodes="authNodes" :on-save-before="onSaveBefore" @on-edit-load-after="onEditLoadAfter">
|
<div slot="blank-portRule">
|
<el-checkbox-group v-model="portRule.checkRule">
|
<div class="clear">
|
<el-checkbox label="相同托盘号下相同的信息存在" class="margin-right-10 left"></el-checkbox>
|
<el-input-number v-model="portRule.existNumber" size="small" controls-position="right" class="w-100 left"></el-input-number>
|
<el-checkbox-group v-model="portRule.checkWhere" class="left margin-left-20">
|
<el-checkbox label="姓名"></el-checkbox>
|
<el-checkbox label="手机号"></el-checkbox>
|
<el-checkbox label="身份证号"></el-checkbox>
|
<el-checkbox label="地址"></el-checkbox>
|
</el-checkbox-group>
|
</div>
|
<div class="clear">
|
<el-checkbox label="单个包裹申报货值不差过(元)" class="margin-right-10"></el-checkbox>
|
<el-input-number v-model="portRule.existMoney" size="small" controls-position="right" class="w-100"></el-input-number>
|
</div>
|
<div>
|
<el-checkbox label="单个包裹重量不超过(KG)" class="margin-right-10"></el-checkbox>
|
<el-input-number v-model="portRule.existWeight" size="small" controls-position="right" class="w-100"></el-input-number>
|
</div>
|
<div>
|
<el-checkbox label="身份信息验证内容" class="margin-right-10"></el-checkbox>
|
<el-radio v-model="portRule.factor" label="1">二要素</el-radio>
|
<el-radio v-model="portRule.factor" label="2">三要素</el-radio>
|
</div>
|
<div>
|
<el-checkbox label="需身份证正反面照片" class="margin-right-10"></el-checkbox>
|
</div>
|
</el-checkbox-group>
|
</div>
|
<div slot="blank-plateRule">
|
<el-input v-model="plateRule" placeholder="PC[yyyy][MM][dd][3]" style="width:200px;"></el-input>
|
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
|
<div style="margin: 15px 0;"></div>
|
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
|
<el-checkbox v-for="city in cities" :label="city" :key="city">{{ city }}</el-checkbox>
|
</el-checkbox-group>
|
</div>
|
<div slot="blank-cardFileName">
|
<el-input v-model="cardFileName" style="width:200px;"></el-input>
|
<div style="margin: 15px 0;"></div>
|
<el-checkbox-group v-model="checkedfile" @change="handlecheckedfileChange">
|
<el-checkbox v-for="name in filename" :label="name" :key="name">{{ name }}</el-checkbox>
|
</el-checkbox-group>
|
</div>
|
<div slot="blank-portExpress">
|
<el-form-item label="快递类别">
|
<el-select v-model="expressCorpType" multiple filterable clearable placeholder="请选择快递类别" style="width:300px;">
|
<el-option v-for="(item, index) in expressCorpTypeList" :key="index" :label="item.name" :value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</yrt-editor>
|
</div>
|
</template>
|
<script>
|
import baseLayout from "@/components/common/base-layout.vue";
|
const cityOptions = ["[yyyy]", "[MM]", "[dd]", "[hh]"];
|
const exportFileOptions = ["[身份证号]", "[姓名]", "[运单号]", "[快递单号]"];
|
export default {
|
name: "tms-basic-port",
|
components: {},
|
mixins: [baseLayout],
|
data() {
|
return {
|
checkList: [], // 复选list
|
portRule: {
|
checkRule: [], // 一级选项
|
checkWhere: [], // 校验条件
|
existNumber: 0, // 存在数量
|
existMoney: null, // 包裹价值上线
|
existWeight: null, // 包裹重量上线
|
factor: null // 校验要素
|
},
|
plateRule: null, // 托盘编码规则
|
cardFileName: null, // 身份证导出文件名
|
checkAll: false,
|
checkedCities: [],
|
checkedfile: [],
|
cities: cityOptions,
|
filename: exportFileOptions,
|
isIndeterminate: true,
|
// 快递类别下拉框数据列表
|
expressCorpTypeList: [],
|
expressCorpType: "",
|
expressType: []
|
};
|
},
|
mounted() {
|
this.getExpressCode();
|
},
|
methods: {
|
handlecheckedfileChange(value) {
|
var str = "";
|
value.forEach(element => {
|
str += element;
|
});
|
this.cardFileName = str;
|
},
|
// 全选
|
handleCheckAllChange(val) {
|
this.checkedCities = val ? cityOptions : [];
|
this.isIndeterminate = false;
|
var str = "";
|
this.checkedCities.forEach(element => {
|
str += element;
|
});
|
this.plateRule = str;
|
},
|
// 单独勾选
|
handleCheckedCitiesChange(value) {
|
const checkedCount = value.length;
|
this.checkAll = checkedCount === this.cities.length;
|
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
|
var str = "";
|
value.forEach(element => {
|
str += element;
|
});
|
this.plateRule = str;
|
},
|
onSaveBefore(formData) {
|
var expressCorpType = this.expressCorpType;
|
var arr = [];
|
this.expressCorpTypeList.forEach(e => {
|
expressCorpType.forEach(a => {
|
if (a === e.value) {
|
var info = {
|
expressCorpType: e.value,
|
expressCorpName: e.name
|
};
|
arr.push(info);
|
}
|
});
|
});
|
var editorRef = this.editor;
|
editorRef.formData.portRule = JSON.stringify(this.portRule);
|
editorRef.formData.plateRule = this.plateRule;
|
editorRef.formData.cardFileName = this.cardFileName;
|
editorRef.formData.portExpress = JSON.stringify(arr);
|
},
|
onEditLoadAfter(formData) {
|
if (formData.portRule !== "[]") {
|
const portRule = JSON.parse(formData.portRule);
|
this.portRule = this.common.objectToCase(portRule);
|
} else {
|
this.portRule = {
|
checkRule: [], // 一级选项
|
checkWhere: [], // 校验条件
|
existNumber: 0, // 存在数量
|
existMoney: null, // 包裹价值上线
|
existWeight: null, // 包裹重量上线
|
factor: null // 校验要素
|
};
|
}
|
if (formData.plateRule) {
|
this.plateRule = formData.plateRule;
|
}
|
if (formData.cardFileName) {
|
this.cardFileName = formData.cardFileName;
|
}
|
if (formData.portExpress) {
|
// eslint-disable-next-line
|
var dataObj = eval("(" + formData.portExpress + ")");
|
dataObj = this.common.arrayToCase(dataObj);
|
var arr = [];
|
dataObj.forEach(a => {
|
arr.push(a.expressCorpType);
|
});
|
this.expressCorpType = arr;
|
} else {
|
this.expressCorpType = [];
|
}
|
},
|
// 设置托盘规则
|
generatePlateRule(val) {
|
this.plateRule = val.name;
|
},
|
// 获取快递类别
|
getExpressCode() {
|
const url = "/api/basicInfo/base/expressCorp/getExpressCorpType";
|
const params = {};
|
this.common.ajax(url, params, res => {
|
this.common.showMsg(res);
|
if (res.result) {
|
this.expressCorpTypeList = res.data;
|
}
|
});
|
}
|
}
|
};
|
</script>
|