md
This commit is contained in:
parent
bef59a9f6a
commit
1086b8f998
@ -19,7 +19,12 @@
|
|||||||
>
|
>
|
||||||
|
|
||||||
<!-- @blur="onBlur" -->
|
<!-- @blur="onBlur" -->
|
||||||
<el-option v-for="item in optionItems" :key="item.code" :label="item.name+'('+item.nameEn+')'" :value="item.code" ></el-option>
|
<el-option v-for="item in optionItems"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name+'('+item.nameEn+')'"
|
||||||
|
:value="item.code"
|
||||||
|
:disabled="item.disabled"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -57,14 +62,19 @@
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value(newVal,oldVal) {
|
value(newVal,oldVal) {
|
||||||
// if(this.value){
|
console.log("country muti select picker==333==>",newVal);
|
||||||
// this.svalue=this.value.split(",");
|
if(this.value){
|
||||||
// this.queryData(null,this.svalue.join(","));
|
this.svalue=this.value.split(",");
|
||||||
// }
|
this.queryData(null,this.svalue.join(","));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
console.log("country muti select picker==111==>",this.value);
|
||||||
|
|
||||||
if(this.value){
|
if(this.value){
|
||||||
|
this.optionItems=null;
|
||||||
|
this.defaultItems=null;
|
||||||
this.svalue=this.value.split(",");
|
this.svalue=this.value.split(",");
|
||||||
this.queryData(null,this.svalue.join(","));
|
this.queryData(null,this.svalue.join(","));
|
||||||
}else{
|
}else{
|
||||||
@ -72,6 +82,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
|
console.log("country muti select picker==222==>",this.value);
|
||||||
|
|
||||||
|
if(this.value){
|
||||||
|
this.optionItems=null;
|
||||||
|
this.defaultItems=null;
|
||||||
|
this.svalue=this.value.split(",");
|
||||||
|
this.queryData(null,this.svalue.join(","));
|
||||||
|
}else{
|
||||||
|
this.svalue=[];
|
||||||
|
}
|
||||||
|
|
||||||
let rulesDom = this.$refs["selectRef"].$el.querySelector(".el-input .el-input__suffix .el-input__suffix-inner .el-input__icon"); // 找到dom
|
let rulesDom = this.$refs["selectRef"].$el.querySelector(".el-input .el-input__suffix .el-input__suffix-inner .el-input__icon"); // 找到dom
|
||||||
rulesDom.classList.add("el-icon-arrow-up"); // 对dom新增class
|
rulesDom.classList.add("el-icon-arrow-up"); // 对dom新增class
|
||||||
},
|
},
|
||||||
@ -94,9 +115,31 @@
|
|||||||
},
|
},
|
||||||
onChange() {
|
onChange() {
|
||||||
if(this.svalue&&this.svalue.length>0){
|
if(this.svalue&&this.svalue.length>0){
|
||||||
|
|
||||||
|
// if (this.svalue.includes('-1')||this.svalue.includes('-2')) {
|
||||||
|
// this.optionItems.map((res) => {
|
||||||
|
// if((res.code != '-1')&&(res.code != '-2')){
|
||||||
|
// res.disabled = true;
|
||||||
|
// }else{
|
||||||
|
// res.disabled = false;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }else{
|
||||||
|
// this.optionItems.map((res) => {
|
||||||
|
// if( ( (res.code == '-1') || (res.code == '-2') ) && this.svalue.length>0){
|
||||||
|
// res.disabled = true;
|
||||||
|
// }else{
|
||||||
|
// res.disabled = false;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
this.$emit("input", this.svalue.join(","));
|
this.$emit("input", this.svalue.join(","));
|
||||||
this.$emit("onChange",this.svalue);
|
this.$emit("onChange",this.svalue);
|
||||||
}else{
|
}else{
|
||||||
|
this.optionItems.map((res) => {
|
||||||
|
res.disabled = false;
|
||||||
|
});
|
||||||
|
|
||||||
this.$emit("input", null);
|
this.$emit("input", null);
|
||||||
this.$emit("onChange",null);
|
this.$emit("onChange",null);
|
||||||
}
|
}
|
||||||
@ -105,17 +148,24 @@
|
|||||||
debounce(this.queryData(val,key),1000);
|
debounce(this.queryData(val,key),1000);
|
||||||
},
|
},
|
||||||
queryData(val,key) {
|
queryData(val,key) {
|
||||||
|
|
||||||
|
|
||||||
this.optionItems=[];
|
this.optionItems=[];
|
||||||
let queryParams = {
|
let queryParams = {
|
||||||
pageNum:1,
|
pageNum:1,
|
||||||
pageSize:10,
|
pageSize:10,
|
||||||
code:key,
|
name:val,
|
||||||
name:val
|
code:key
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
listSimpleEmisCountry(queryParams).then(response => {
|
listSimpleEmisCountry(queryParams).then(response => {
|
||||||
let allCuntruny={code:'-1',name:'全部',nameEn:'all'};
|
let allCountry={code:'-1',name:'全部',nameEn:'all'};
|
||||||
|
let allNoChinaCountry={code:'-2',name:'非中国',nameEn:'No China'};
|
||||||
this.optionItems =response.rows;
|
this.optionItems =response.rows;
|
||||||
this.optionItems.unshift(allCuntruny);
|
this.optionItems.unshift(allNoChinaCountry);
|
||||||
|
this.optionItems.unshift(allCountry);
|
||||||
// 初始值存储
|
// 初始值存储
|
||||||
if(key==null && val==null){
|
if(key==null && val==null){
|
||||||
this.defaultItems=[...this.optionItems]
|
this.defaultItems=[...this.optionItems]
|
||||||
|
|||||||
233
src/views/emis/EmisBaseTools/EmisStaffSimpleListPicker.vue
Normal file
233
src/views/emis/EmisBaseTools/EmisStaffSimpleListPicker.vue
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
<template>
|
||||||
|
<div :id="createdId">
|
||||||
|
<SearchForm :model="queryParams" ref="queryForm" size="mini" :maxShow="20" label-width="68px" @search="handleQuery" @reset="resetQuery">
|
||||||
|
<el-form-item label="员工名称" prop="empName">
|
||||||
|
<XdTextareaInput
|
||||||
|
v-model="queryParams.empName"
|
||||||
|
:placeholder="$t('多个流水号逗号或换行隔开')"
|
||||||
|
clearable
|
||||||
|
:rows="4"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</SearchForm>
|
||||||
|
|
||||||
|
<XdTable
|
||||||
|
max-height="300px"
|
||||||
|
v-loading="loading"
|
||||||
|
border
|
||||||
|
size="mini"
|
||||||
|
:data="optionItems"
|
||||||
|
storageName="emisUser_main_picker"
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
:total="total"
|
||||||
|
highlight-current-row
|
||||||
|
:showStatInfo="false"
|
||||||
|
:showRightButton="false"
|
||||||
|
:showOperateButton="false"
|
||||||
|
:showCustomizeTpl="false"
|
||||||
|
@queryTable="queryData"
|
||||||
|
:queryParams="queryParams"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
@sort-change="handleSortChange"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="50" align="center" />
|
||||||
|
<el-table-column label="员工编号" align="center" prop="empCode" width="80"/>
|
||||||
|
<el-table-column label="员工名称" align="left" prop="empName" :show-overflow-tooltip="true" width="100" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div class="link-type"><span>{{scope.row.empName}}</span> </div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所属网点" align="left" prop="ownerSiteName" :show-overflow-tooltip="true" width="100" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div class="link-type" @click="handleUpdate(scope.row)"><span v-if="scope.row.ownerSiteCode!=null">{{scope.row.ownerSiteName}}</span> </div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所属部门" align="center" key="deptName" prop="dept.deptName" width="100" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="启用状态" align="center" prop="blOpen" width="100" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.sys_biz_enable_status" :value="scope.row.blOpen"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="电话" align="center" key="phonenumber" prop="phonenumber" width="100" />
|
||||||
|
<!-- <el-table-column label="邮箱" align="center" key="email" prop="email" width="100" /> -->
|
||||||
|
<!-- <el-table-column label="住址" align="center" key="address" prop="address" width="100" /> -->
|
||||||
|
<el-table-column label="员工类型" align="center" key="postNames" prop="postNames" width="100" />
|
||||||
|
</XdTable>
|
||||||
|
<div style="text-align: center;margin-bottom: 10px;">
|
||||||
|
<el-button type="primary" @click="confirmSelect">确定</el-button>
|
||||||
|
<el-button @click="cancelSelect">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import emitter from 'element-ui/src/mixins/emitter';
|
||||||
|
import { listUser } from "@/api/system/user";
|
||||||
|
import { listPost } from "@/api/system/post";
|
||||||
|
|
||||||
|
import CountryPicker from '@/views/emis/EmisBaseTools/CountryPicker.vue';
|
||||||
|
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "EmisStaffListPicker",
|
||||||
|
components: { CountryPicker,EmisSiteSimplePicker },
|
||||||
|
mixins: [emitter],
|
||||||
|
dicts: ['sys_normal_disable', 'sys_user_sex','emis_site_type','sys_biz_enable_status'],
|
||||||
|
props: {
|
||||||
|
placeholder:{
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
createdId: '0',
|
||||||
|
loading:false,
|
||||||
|
|
||||||
|
total:0,
|
||||||
|
optionItems: [],
|
||||||
|
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
empCodeStr:null,
|
||||||
|
empNameStr:null,
|
||||||
|
|
||||||
|
|
||||||
|
// 岗位选项
|
||||||
|
postOptions: [],
|
||||||
|
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
|
||||||
|
// 缺省值
|
||||||
|
defaultTotal:0,
|
||||||
|
defaultItems:null,
|
||||||
|
|
||||||
|
sId: null,
|
||||||
|
svalue: this.value,
|
||||||
|
|
||||||
|
isInputing: false,
|
||||||
|
|
||||||
|
queryParams:{
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
empCode: undefined,
|
||||||
|
empName: undefined,
|
||||||
|
phonenumber: undefined,
|
||||||
|
status: undefined,
|
||||||
|
deptId: undefined,
|
||||||
|
postIds: undefined,
|
||||||
|
params:{
|
||||||
|
countryCode:null,
|
||||||
|
siteType:null,
|
||||||
|
parentSiteCode:null,
|
||||||
|
blIncludeChildSite:'1',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
value(newVal,oldVal) {
|
||||||
|
this.svalue=this.value;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.createdId = String(new Date().getTime()) // 给个随机id 判断是否clickoutside
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.initPost();
|
||||||
|
if(this.svalue!=null){
|
||||||
|
this.svalue = this.value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.userId);
|
||||||
|
let empCodeArr = selection.map(item => item.empCode);
|
||||||
|
let empNameArr = selection.map(item => item.empName);
|
||||||
|
this.empCodeStr="";
|
||||||
|
this.empNameStr="";
|
||||||
|
if(empCodeArr.length > 0){
|
||||||
|
this.empCodeStr=empCodeArr.join(",");
|
||||||
|
this.empNameStr=empNameArr.join(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
handleSortChange(column) {
|
||||||
|
},
|
||||||
|
initPost() {
|
||||||
|
let queryParams = {pageNum: 1,pageSize: 100};
|
||||||
|
listPost(queryParams).then(response => {
|
||||||
|
this.postOptions = response.rows;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleInput(val) {
|
||||||
|
if(val == null ) return;
|
||||||
|
this.isInputing = true;
|
||||||
|
this.svalue = val;
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.queryData(val,null)
|
||||||
|
},
|
||||||
|
confirmSelect(){
|
||||||
|
this.$emit("on-changed",this.empCodeStr,this.empNameStr);
|
||||||
|
},
|
||||||
|
cancelSelect(){
|
||||||
|
this.$emit("on-cancel");
|
||||||
|
},
|
||||||
|
onRowClick(row, column, event) {
|
||||||
|
this.svalue=row.name;
|
||||||
|
this.isInputing = false;
|
||||||
|
this.sId=row.id;
|
||||||
|
this.$emit("input", this.svalue);
|
||||||
|
this.$emit("onChange",row);
|
||||||
|
},
|
||||||
|
isRed({ row }) {
|
||||||
|
if (row.id == this.sId) {
|
||||||
|
return {
|
||||||
|
"color": "red",
|
||||||
|
"font-weight": "bold",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changePage(cur) {
|
||||||
|
this.queryParams.pageNum = cur
|
||||||
|
this.queryData(this.queryParams.searchValue)
|
||||||
|
},
|
||||||
|
onClear(el){
|
||||||
|
this.svalue = null;
|
||||||
|
|
||||||
|
this.$emit("input", this.svalue);
|
||||||
|
this.dispatch('ElFormItem', 'el.form.blur', [this.svalue]);
|
||||||
|
},
|
||||||
|
onBlur(el) {
|
||||||
|
this.$emit("input", this.svalue);
|
||||||
|
this.dispatch('ElFormItem', 'el.form.blur', [this.svalue]);
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.queryData();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
queryData(val,key) {
|
||||||
|
this.loading = true;
|
||||||
|
this.queryParams.searchValue = val;
|
||||||
|
|
||||||
|
listUser(this.queryParams).then(response => {
|
||||||
|
this.loading = false;
|
||||||
|
this.total = response.total;
|
||||||
|
this.optionItems = response.rows;
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
getIndex($index) {
|
||||||
|
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
147
src/views/emis/EmisBaseTools/TransLineMultiplePicker.vue
Normal file
147
src/views/emis/EmisBaseTools/TransLineMultiplePicker.vue
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<template>
|
||||||
|
<!-- collapse-tags -->
|
||||||
|
<el-select
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
ref="selectRef"
|
||||||
|
v-model="svalue"
|
||||||
|
:placeholder="placeholder"
|
||||||
|
@blur="onBlur"
|
||||||
|
@focus="onFocus"
|
||||||
|
style="width:100%"
|
||||||
|
class="mutiSelect"
|
||||||
|
:popper-append-to-body="false"
|
||||||
|
@change="onChange">
|
||||||
|
<div style="padding: 0px 8px 0 20px;width:100%;line-height:34px;display:inline-flex">
|
||||||
|
<div style="width:50%">
|
||||||
|
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
|
||||||
|
</div>
|
||||||
|
<div style="width:50%;text-align:right">
|
||||||
|
<el-button type="primary" size="mini" style="padding:2px 10px" @click="hideMe">确定</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-checkbox-group v-model="svalue">
|
||||||
|
<el-option v-for="item in optionItems" :key="item.prodCode" :label="item.lineName" :value="item.lineCode">
|
||||||
|
<el-checkbox style="pointer-events: none" :key="item.lineCode" :label="item.lineCode+''">{{item.lineName}}</el-checkbox>
|
||||||
|
</el-option>
|
||||||
|
<!-- style="pointer-events: none" -->
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- style="width:100%" multiple-->
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import emitter from 'element-ui/src/mixins/emitter';
|
||||||
|
import { listSimpleEmisTransLine } from "@/api/emis/emisTransLine";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "TransLineMultiplePicker",
|
||||||
|
mixins: [emitter],
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: [String],
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
transLineCode: {
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
placeholder:{
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
isInitiated:{
|
||||||
|
type: [Boolean,String],
|
||||||
|
required: false,
|
||||||
|
default:false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
optionItems: [],
|
||||||
|
svalue: [],
|
||||||
|
isFistInit:true,
|
||||||
|
checkAll: false, //招标阶段 是否全选
|
||||||
|
isIndeterminate: false, //全选复选框标识
|
||||||
|
searchLineCode:this.value,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
value(newVal) {
|
||||||
|
if(this.value){
|
||||||
|
this.svalue = this.value.split(',');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
transLineCode(newVal) {
|
||||||
|
this.queryData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.queryData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
hideMe(){
|
||||||
|
this.$refs.selectRef.blur();
|
||||||
|
},
|
||||||
|
onFocus(){
|
||||||
|
this.searchLineCode=null;
|
||||||
|
},
|
||||||
|
onBlur(val){
|
||||||
|
this.$emit("input", this.svalue?this.svalue.join(','):null);
|
||||||
|
this.dispatch('ElFormItem', 'el.form.blur', [this.svalue]);
|
||||||
|
},
|
||||||
|
handleCheckAllChange(isCheckAll){
|
||||||
|
if(isCheckAll){
|
||||||
|
const data = this.optionItems.map(item => {
|
||||||
|
return item.lineCode
|
||||||
|
})
|
||||||
|
this.svalue=data
|
||||||
|
}else{
|
||||||
|
this.svalue=[];
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$emit("input", this.svalue?this.svalue.join(','):null);
|
||||||
|
this.isIndeterminate = false;
|
||||||
|
},
|
||||||
|
onChange(val) {
|
||||||
|
console.log(val)
|
||||||
|
const checkedCount = this.svalue.length;
|
||||||
|
this.checkAll = checkedCount === this.optionItems.length;
|
||||||
|
this.isIndeterminate = checkedCount > 0 && checkedCount < this.optionItems.length;
|
||||||
|
|
||||||
|
// this.$emit("input", this.svalue);
|
||||||
|
this.$emit("input", this.svalue?this.svalue.join(','):null);
|
||||||
|
let itemSelData =[]
|
||||||
|
this.optionItems.forEach(item=>{
|
||||||
|
if(item.lineCode === this.svalue){
|
||||||
|
itemSelData.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$emit("onChange",itemSelData);
|
||||||
|
this.dispatch('ElFormItem', 'el.form.change', [this.svalue]);
|
||||||
|
},
|
||||||
|
queryData(val,key) {
|
||||||
|
let queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 300,
|
||||||
|
lineCode:key,
|
||||||
|
lineName:val,
|
||||||
|
status:1
|
||||||
|
};
|
||||||
|
listSimpleEmisTransLine(queryParams).then(response => {
|
||||||
|
this.optionItems = response.rows;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.mutiSelect :deep .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="线路" prop="transLineCode">
|
<el-form-item label="线路" prop="transLineCode">
|
||||||
<TransLinePicker v-model="form.transLineCode" isInitiated="true"></TransLinePicker>
|
<TransLineMultiplePicker v-model="form.transLineCode" isInitiated="true"></TransLineMultiplePicker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
@ -189,10 +189,25 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-dialog :title="titleForm" :visible.sync="openForm" width="60%" :destroy-on-close="true" v-dialogDrag append-to-body>
|
<el-dialog :title="titleForm" :visible.sync="openForm" width="60%" :destroy-on-close="true" v-dialogDrag append-to-body>
|
||||||
<EmisStaffListPicker @on-changed="handleStaffFormChanged" @on-cancel="cancelStaffForm"></EmisStaffListPicker>
|
<!-- <EmisStaffSimpleListPicker @on-changed="handleStaffFormChanged" @on-cancel="cancelStaffForm"></EmisStaffSimpleListPicker> -->
|
||||||
|
<el-form size="mini" label-width="60px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item :label="$t('名称')" prop="formBatchEmp">
|
||||||
|
<el-input v-model="impEmpListStr" type="textarea" :rows="8" placeholder="多个名称使用逗号或换行隔开" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer" style="text-align:center">
|
||||||
|
<el-button type="primary" @click="submitFormBatchEmp">确定</el-button>
|
||||||
|
<el-button @click="cancelBatchEmp">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div style="text-align: center;margin-bottom: 10px;">
|
<div style="text-align: center;margin-bottom: 10px;">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
@ -210,14 +225,17 @@ import {addDateTimeByDay,dateToStr} from '@/utils/custom'
|
|||||||
import CountryMutiSelectPicker from '@/views/emis/EmisBaseTools/CountryMutiSelectPicker.vue';
|
import CountryMutiSelectPicker from '@/views/emis/EmisBaseTools/CountryMutiSelectPicker.vue';
|
||||||
import CountryMutiSelectPicker1 from '@/views/emis/EmisBaseTools/CountryMutiSelectPicker.vue';
|
import CountryMutiSelectPicker1 from '@/views/emis/EmisBaseTools/CountryMutiSelectPicker.vue';
|
||||||
|
|
||||||
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
|
|
||||||
|
import TransLineMultiplePicker from '@/views/emis/EmisBaseTools/TransLineMultiplePicker.vue';
|
||||||
import TransProductMultiplePicker from '@/views/emis/EmisBaseTools/TransProductMultiplePicker.vue';
|
import TransProductMultiplePicker from '@/views/emis/EmisBaseTools/TransProductMultiplePicker.vue';
|
||||||
|
|
||||||
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
||||||
import EmisStaffListPicker from '@/views/emis/EmisBaseTools/EmisStaffListPicker.vue';
|
import EmisStaffSimpleListPicker from '@/views/emis/EmisBaseTools/EmisStaffSimpleListPicker.vue';
|
||||||
|
import { listUser } from "@/api/system/user";
|
||||||
|
|
||||||
|
|
||||||
import EcqExpressionPanel from '@/views/emis/emisCommissionQuote/ecqExpressionPanel.vue';
|
import EcqExpressionPanel from '@/views/emis/emisCommissionQuote/ecqExpressionPanel.vue';
|
||||||
|
import { PageSizes } from "pdf-lib";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -230,7 +248,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
CountryMutiSelectPicker,CountryMutiSelectPicker1,EmisSiteSimplePicker,EcqExpressionPanel,
|
CountryMutiSelectPicker,CountryMutiSelectPicker1,EmisSiteSimplePicker,EcqExpressionPanel,
|
||||||
EmisStaffListPicker,TransLinePicker,TransProductMultiplePicker
|
EmisStaffSimpleListPicker,TransLineMultiplePicker,TransProductMultiplePicker
|
||||||
},
|
},
|
||||||
dicts: ['emis_price_type','emis_fee_type','sys_currency_type',
|
dicts: ['emis_price_type','emis_fee_type','sys_currency_type',
|
||||||
'emis_commission_post','emis_biz_shipping_method','emis_commission_fee_type'],
|
'emis_commission_post','emis_biz_shipping_method','emis_commission_fee_type'],
|
||||||
@ -243,6 +261,7 @@ export default {
|
|||||||
openForm:false,
|
openForm:false,
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
|
impEmpListStr:null,
|
||||||
isCopy:false,
|
isCopy:false,
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
@ -287,12 +306,65 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
// 批量员工录入
|
||||||
|
async submitFormBatchEmp(){
|
||||||
|
// 判断员工是否存在
|
||||||
|
if(this.impEmpListStr==null || this.impEmpListStr==''){
|
||||||
|
this.$modal.msgError("请输入名称");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let userArr=this.impEmpListStr.trim().split(/[;\;\,\,\n]/)||[];
|
||||||
|
let empCodeStr="";
|
||||||
|
let empNameStr="";
|
||||||
|
for(let i=0;i<userArr.length;i++){
|
||||||
|
let user=await this.getStaffUser(userArr[i]);
|
||||||
|
console.log("====>user====>",user);
|
||||||
|
if(user==null){
|
||||||
|
this.$modal.msgError(userArr[i]+"不存在!");
|
||||||
|
return
|
||||||
|
}else{
|
||||||
|
empCodeStr=empCodeStr+user.empCode+",";
|
||||||
|
empNameStr=empNameStr+user.empName+",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.form.empCode=empCodeStr;
|
||||||
|
this.form.empName=empNameStr;
|
||||||
|
|
||||||
|
|
||||||
|
this.openForm=false;
|
||||||
|
},
|
||||||
|
cancelBatchEmp(){
|
||||||
|
this.openForm=false;
|
||||||
|
},
|
||||||
|
async getStaffUser(name){
|
||||||
|
let qParams={
|
||||||
|
searchValue:name,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 1,
|
||||||
|
params:{
|
||||||
|
blMatchEmpName:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let res=await listUser(qParams);
|
||||||
|
if(res.code == 200 ){
|
||||||
|
if(res.total>0){
|
||||||
|
return res.rows[0];
|
||||||
|
}else{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
initData() {
|
initData() {
|
||||||
|
|
||||||
if(this.quoteId !=null) {
|
if(this.quoteId !=null) {
|
||||||
|
this.form={};
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
getEmisCommissionQuote(this.quoteId).then(response => {
|
getEmisCommissionQuote(this.quoteId).then(response => {
|
||||||
this.form = response.data;
|
this.form = response.data;
|
||||||
|
console.log("==x1==>",this.form);
|
||||||
|
|
||||||
if(this.form.transType){
|
if(this.form.transType){
|
||||||
this.$set(this.form,"transTypeIdArr",this.form.transType.split(","))
|
this.$set(this.form,"transTypeIdArr",this.form.transType.split(","))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -192,6 +192,7 @@
|
|||||||
<el-table-column :label="$t('起始国')" align="center" prop="fromCountryName" min-width="100" :show-overflow-tooltip="true">
|
<el-table-column :label="$t('起始国')" align="center" prop="fromCountryName" min-width="100" :show-overflow-tooltip="true">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.fromCountry=='-1'">全部</span>
|
<span v-if="scope.row.fromCountry=='-1'">全部</span>
|
||||||
|
<span v-if="scope.row.fromCountry=='-2'">非中国</span>
|
||||||
<span v-else>{{ scope.row.fromCountryName }}</span>
|
<span v-else>{{ scope.row.fromCountryName }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -199,6 +200,7 @@
|
|||||||
<el-table-column :label="$t('目的国')" align="center" prop="countryName" min-width="100" :show-overflow-tooltip="true">
|
<el-table-column :label="$t('目的国')" align="center" prop="countryName" min-width="100" :show-overflow-tooltip="true">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.country=='-1'">全部</span>
|
<span v-if="scope.row.country=='-1'">全部</span>
|
||||||
|
<span v-if="scope.row.country=='-2'">非中国</span>
|
||||||
<span v-else>{{ scope.row.countryName }}</span>
|
<span v-else>{{ scope.row.countryName }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -330,7 +332,6 @@ export default {
|
|||||||
/** 查询员工提成方案报价列表 */
|
/** 查询员工提成方案报价列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
|
||||||
listEmisCommissionQuote(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
|
listEmisCommissionQuote(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
|
||||||
this.emisCommissionQuoteList = response.rows;
|
this.emisCommissionQuoteList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user