修复问题

master
sunzehua 7 months ago
parent 87ce657fd2
commit 53d1d1f2cb

@ -12,7 +12,7 @@ import { axios } from '@/utils/request'
* @author yubaoshan
* @date 2020/5/26 19:06
*/
export function login (parameter) {
export function login(parameter) {
return axios({
url: '/login',
method: 'post',
@ -26,12 +26,12 @@ export function login (parameter) {
* @author 蛋蛋
* @date 2022/4/13 22:06
*/
export function simulationTenantLogin(parameter){
return axios({
url: '/simulationTenantLogin',
method: 'post',
data: parameter
})
export function simulationTenantLogin(parameter) {
return axios({
url: '/simulationTenantLogin',
method: 'post',
data: parameter
})
}
/**
@ -40,7 +40,7 @@ export function simulationTenantLogin(parameter){
* @author yubaoshan
* @date 2020/5/26 19:07
*/
export function logout (parameter) {
export function logout(parameter) {
return axios({
url: '/logout',
method: 'get',
@ -54,7 +54,7 @@ export function logout (parameter) {
* @author yubaoshan
* @date 2020/5/26 19:08
*/
export function getLoginUser (parameter) {
export function getLoginUser(parameter) {
return axios({
url: '/getLoginUser',
method: 'get',
@ -68,7 +68,7 @@ export function getLoginUser (parameter) {
* @author yubaoshan
* @date 2020/5/26 19:29
*/
export function getSmsCaptcha (parameter) {
export function getSmsCaptcha(parameter) {
return axios({
url: '/getSmsCaptcha',
method: 'get',
@ -82,7 +82,7 @@ export function getSmsCaptcha (parameter) {
* @author Jax
* @date 2021/1/22 00:00
*/
export function getCaptchaOpen (parameter) {
export function getCaptchaOpen(parameter) {
return axios({
url: '/getCaptchaOpen',
method: 'get',
@ -124,10 +124,18 @@ export function reqCheck(data) {
* @author yubaoshan
* @date 2020/6/23 23:09
*/
export function loginWithCode (parameter) {
export function loginWithCode(parameter) {
return axios({
url: '/loginWithCode',
method: 'post',
params: parameter
})
}
}
export function ChangeLogin(parameter) {
return axios({
url: '/ChangeLogin',
method: 'post',
params: parameter
})
}

@ -59,6 +59,7 @@ import { ALL_APPS_MENU } from '@/store/mutation-types'
import Vue from 'vue'
import { message } from 'ant-design-vue/es'
export default {
name: 'GlobalHeader',
components: {

@ -44,6 +44,13 @@
<span>账户设置</span>
</router-link>
</a-menu-item>
<a-menu-divider v-if="userList.length>0" />
<a-menu-item key="2" v-if="userList.length>0">
<a href="javascript:;" @click="handleChangeUser">
<a-icon type="unordered-list" />
<span>切换租户</span>
</a>
</a-menu-item>
<a-menu-divider />
<a-menu-item key="3">
<a href="javascript:;" @click="handleLogout">
@ -54,13 +61,7 @@
</a-menu>
</a-dropdown>
</div>
<a-modal
title="切换应用"
:visible="visible"
:footer="null"
:confirm-loading="confirmLoading"
@cancel="handleCancel"
>
<a-modal title="切换应用" :visible="visible" :footer="null" :confirm-loading="confirmLoading" @cancel="handleCancel">
<a-form :form="form1">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="选择应用">
<a-menu mode="inline" :default-selected-keys="this.defApp" style="border-bottom:0px;lineHeight:55px;">
@ -71,6 +72,13 @@
</a-form-item>
</a-form>
</a-modal>
<a-modal title="切换租户" :visible="userFlag" :footer="null" :confirm-loading="confirmLoading" @cancel="userFlag = false">
<a-table :loading="userLoad" :pagination="false" :columns="columns" :data-source="userList">
<span slot="action" slot-scope="text, record">
<a href="javascript:;" @click="switchUser(record)"></a>
</span>
</a-table>
</a-modal>
</div>
</template>
@ -98,6 +106,27 @@ export default {
data() {
return {
production: config.production,
userFlag: false,
columns: [
{
title: '租户名称',
dataIndex: 'tenantName',
key: 'tenantName'
},
{
title: '账号名称',
dataIndex: 'userName',
key: 'userName'
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
scopedSlots: { customRender: 'action' }
}
],
userList: [],
userLoad: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@ -112,7 +141,9 @@ export default {
defApp: []
}
},
created() {
this.userList = this.userInfo.userAccountRelation ? JSON.parse(JSON.stringify(this.userInfo.userAccountRelation)) : []
},
computed: {
...mapGetters(['token', 'nickname', 'avatar', 'userInfo'])
},
@ -121,11 +152,15 @@ export default {
await this.$socket.authenticate(this.token)
},
methods: {
...mapActions(['Logout', 'MenuChange']),
...mapActions(['Logout', 'MenuChange', 'changeUser']),
loadError() {
console.log('加载失败失败失败')
this.$store.commit('SET_AVATAR', '/avatar2.jpg') //
},
switchUser(record) {
this.userLoad = true
this.changeUser(record)
},
handleLogout() {
this.$confirm({
title: '提示',
@ -146,7 +181,7 @@ export default {
})
})
},
onCancel() {}
onCancel() { }
})
},
@ -157,7 +192,13 @@ export default {
this.visible = true
this.defApp.push(Vue.ls.get(ALL_APPS_MENU)[0].code)
},
handleChangeUser() {
if (this.userList.length > 0) {
this.userFlag = true
} else {
this.$message.warning('暂无租户可切换')
}
},
switchApp(appCode) {
this.visible = false
this.defApp = []

@ -1,5 +1,5 @@
import Vue from 'vue'
import { login, getLoginUser, logout,loginWithCode } from '@/api/modular/system/loginManage'
import { login, getLoginUser, logout, loginWithCode, ChangeLogin } from '@/api/modular/system/loginManage'
import { sysDictTypeTree } from '@/api/modular/system/dictManage'
import { sysMenuChange } from '@/api/modular/system/menuManage'
import { ACCESS_TOKEN, ALL_APPS_MENU, DICT_TYPE_TREE_DATA, NOTICE_RECEIVED } from '@/store/mutation-types'
@ -234,6 +234,35 @@ const user = {
})
})
},
changeUser({ commit, state }, record) {
ChangeLogin({ changeTo: record.id }).then(res => {
if (res.success) {
const token = res.data
logout(state.token).then(res => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_BUTTONS', [])
commit('SET_ADMINTYPE', '')
commit('SET_INFO', null)
Vue.ls.remove(ACCESS_TOKEN)
Vue.ls.remove(ALL_APPS_MENU)
Vue.ls.remove(DICT_TYPE_TREE_DATA)
Vue.ls.remove('FIRSTFLAG')
localStorage.removeItem('formTableData');
localStorage.removeItem('bookingSetting');
localStorage.removeItem('booking_form_copy');
localStorage.removeItem('booking_form_yard');
localStorage.removeItem('vesselinfoSetting');
localStorage.removeItem('mskOrderSetting');
Vue.ls.set(ACCESS_TOKEN, token, 7 * 24 * 60 * 60 * 1000)
commit('SET_TOKEN', token)
location.reload();
})
} else {
this.$message.error(res.message)
}
})
},
// scoket订舱未读消息数量
scoketMessage({ commit, state }) {
GetNumSum({ module: 'Booking' })
@ -280,31 +309,31 @@ const user = {
}
})
},
// 跨平台登录
LoginWithCode({ commit }, userInfo) {
return new Promise((resolve, reject) => {
loginWithCode(userInfo)
.then(response => {
if (!response.success) {
reject(response)
return
}
const result = response.data
console.log(response, 1111)
Vue.ls.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000)
Vue.ls.set('FIRSTFLAG', true, 7 * 24 * 60 * 60 * 1000)
commit('SET_TOKEN', result)
commit('SET_LOADING', false)
resolve()
})
.catch(error => {
console.log(error)
reject(error)
})
})
},
// 登出
ClearnInfo({ commit, state }) {
// 跨平台登录
LoginWithCode({ commit }, userInfo) {
return new Promise((resolve, reject) => {
loginWithCode(userInfo)
.then(response => {
if (!response.success) {
reject(response)
return
}
const result = response.data
console.log(response, 1111)
Vue.ls.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000)
Vue.ls.set('FIRSTFLAG', true, 7 * 24 * 60 * 60 * 1000)
commit('SET_TOKEN', result)
commit('SET_LOADING', false)
resolve()
})
.catch(error => {
console.log(error)
reject(error)
})
})
},
// 登出
ClearnInfo({ commit, state }) {
return new Promise(resolve => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])

@ -349,7 +349,7 @@
v-if="!vesselFrom"
:openSearch="true"
@change="getSelectViewRes"></selectView>
<selectView
<selectView
class="copy-input"
ref="vesselView"
type="vessel"
@ -411,7 +411,7 @@
:wrapperCol="wrapperCol2"
has-feedback
prop="voyno">
<inputView type="voyno" :parentVal="details.voyno" @getInputChange="inputChange" />
<inputView type="voyno" :parentVal="details.voyno" @getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
@ -959,7 +959,7 @@ export default {
},
computed: {
...mapGetters([
'projectDict','vesselFrom'
'projectDict', 'vesselFrom'
])
},
methods: {

@ -4,8 +4,10 @@
<a-card :bordered="false" :bodyStyle="{ padding: '10px 20px' }">
<div class="from-line">
<div class="left" v-if="!isLockBooking">
<a-button class="btn btn-add" type="primary" @click="addboxLine"> <span style="margin-right: 5px;" class="iconfont icon-zhizhishu"></span>添加</a-button>
<a-button class="btn btn-delete" @click="removeLine" :style="{ marginRight: '20px' }"><span style="margin-right: 5px;" class="iconfont icon-shanchu1"></span>删除</a-button>
<a-button class="btn btn-add" type="primary" @click="addboxLine"> <span style="margin-right: 5px;"
class="iconfont icon-zhizhishu"></span>添加</a-button>
<a-button class="btn btn-delete" @click="removeLine" :style="{ marginRight: '20px' }"><span
style="margin-right: 5px;" class="iconfont icon-shanchu1"></span>删除</a-button>
<a-button class="btn btn-more-name" type="primary" @click="openDialog" :disabled="tableData.length === 0">
<a-icon type="appstore" />多品名
</a-button>
@ -21,22 +23,15 @@
<a-button class="btn btn-weight" type="primary" @click="arrowsWeight">
<a-icon type="arrows-alt" />展开箱量
</a-button>
<a-button class="btn btn-add" type="primary" @click="handleRefsh"><span style="margin-right: 5px;" class="iconfont icon-shuaxin"></span>刷新</a-button>
<a-button class="btn btn-add" type="primary" @click="handleRefsh"><span style="margin-right: 5px;"
class="iconfont icon-shuaxin"></span>刷新</a-button>
</div>
<div
v-if="details.autoYardImport && !details.autoYardImport.isRead"
<div v-if="details.autoYardImport && !details.autoYardImport.isRead"
style="display: inline-block;margin-left: 10px;padding-top: 5px;">
<a-icon
v-if="details.autoYardImport && details.autoYardImport.status == '已导入'"
@click="handleOpen"
type="check-circle"
theme="filled"
style="color: green;font-size: 19px;cursor: pointer;" />
<a-icon
v-if="details.autoYardImport && details.autoYardImport.status == '未导入'"
@click="handleOpen"
type="exclamation-circle"
theme="filled"
<a-icon v-if="details.autoYardImport && details.autoYardImport.status == ''" @click="handleOpen"
type="check-circle" theme="filled" style="color: green;font-size: 19px;cursor: pointer;" />
<a-icon v-if="details.autoYardImport && details.autoYardImport.status == ''" @click="handleOpen"
type="exclamation-circle" theme="filled"
style="color: rgb(197, 194, 16);font-size: 19px;cursor: pointer;" />
</div>
<div class="table-right">
@ -49,18 +44,9 @@
</div>
<div v-if="tableLoaded">
<!-- rowKeyFieldName="rowKey" -->
<ve-table
:columns="columns"
:table-data="tableData"
borderY
ref="tableRef"
style="min-width: 970"
:cell-autofill-option="cellAutofillOption"
:editOption="editOption"
:rowKeyFieldName="rowKeyName"
:rowStyleOption="rowStyleOption"
:checkbox-option="checkboxOption"
:clipboard-option="clipboardOption"
<ve-table :columns="columns" :table-data="tableData" borderY ref="tableRef" style="min-width: 970"
:cell-autofill-option="cellAutofillOption" :editOption="editOption" :rowKeyFieldName="rowKeyName"
:rowStyleOption="rowStyleOption" :checkbox-option="checkboxOption" :clipboard-option="clipboardOption"
:cellSelectionOption="cellSelectionOption" />
<div class="table-no-data" v-if="tableData.length === 0"></div>
</div>
@ -68,19 +54,10 @@
</a-card>
</a-spin>
<a-modal
title="多品名维护"
width="80%"
:visible="moreVisible"
:confirmLoading="moreModelconfirm"
:maskClosable="false"
<a-modal title="多品名维护" width="80%" :visible="moreVisible" :confirmLoading="moreModelconfirm" :maskClosable="false"
@cancel="handleModelCancel">
<div class="model-content">
<ve-table
style="width: 100%"
:columns="modelColumns"
:table-data="tableData"
:radio-option="radioOption"
<ve-table style="width: 100%" :columns="modelColumns" :table-data="tableData" :radio-option="radioOption"
row-key-field-name="rowKey" />
<div class="model-botton-box">
<a-button class="btn" type="primary" @click="addChildData"></a-button>
@ -88,15 +65,9 @@
<a-button class="btn" type="primary" @click="saveChildData"></a-button>
</div>
<div class="model-child-table">
<ve-table
:columns="childColumns"
:table-data="childTableData"
borderY
:cell-autofill-option="cellAutofillOption"
:editOption="editChildOption"
rowKeyFieldName="rowKey"
:rowStyleOption="rowStyleOption"
:checkbox-option="checkChildboxOption"
<ve-table :columns="childColumns" :table-data="childTableData" borderY
:cell-autofill-option="cellAutofillOption" :editOption="editChildOption" rowKeyFieldName="rowKey"
:rowStyleOption="rowStyleOption" :checkbox-option="checkChildboxOption"
:clipboard-option="clipboardChildOption" />
<div class="table-no-data" v-if="childTableData.length === 0"></div>
</div>
@ -635,7 +606,7 @@ export default {
return (
<div>
<span title={'回执成功 ' + row.vgmWeight + ' ' + row.vgmWeightUnit + ' ' + row.vgmWeightMethod} v-show={row.vgm && !row.isMissing} style="color:green;cursor:pointer;font-weight:bold"><a-icon type="check" /></span>
<span title={'回执未成功' + row.submissionDeadLine } v-show={row.vgm && row.isMissing} style="color:red;cursor:pointer;font-weight:bold"><a-icon type="exclamation" /></span>
<span title={'回执未成功' + row.submissionDeadLine} v-show={row.vgm && row.isMissing} style="color:red;cursor:pointer;font-weight:bold"><a-icon type="exclamation" /></span>
<span v-show={!row.vgm}>-</span>
</div>
)
@ -1919,6 +1890,12 @@ export default {
this.tableData = []
const lastNum = this.tableData.length > 0 ? Number(this.tableData[this.tableData.length - 1].rowKey) + 1 : 0
const yardSetArr = localStorage.getItem('booking_form_yard') ? JSON.parse(localStorage.getItem('booking_form_yard')) : []
const arr = []
yardSetArr.forEach(item => {
if (item.code === 'VESSEL' || item.code === 'VOYNO') {
arr.push(1)
}
})
const ctnSetArr = []
const infoSetArr = []
yardSetArr.forEach(item => {
@ -1967,19 +1944,42 @@ export default {
})
}
this.tableData = [...this.tableData, ...addTable]
if (infoSetArr.length > 0) {
const arr = []
infoSetArr.forEach(item => {
for (const key in data[0]) {
if (item.code === key) {
item.value = data[0][key]
arr.push(item)
if ((data[0].VESSEL || data[0].VOYNO) && (this.details.vessel || this.details.voyno) && arr.length > 0) {
const that = this
this.$confirm({
title: '提示',
content: '已经录入船名航次,是否要覆盖',
onOk() {
if (infoSetArr.length > 0) {
const arr = []
infoSetArr.forEach(item => {
for (const key in data[0]) {
if (item.code === key) {
item.value = data[0][key]
arr.push(item)
}
}
})
that.$emit('getInfoSet', arr)
}
that.$forceUpdate()
}
})
this.$emit('getInfoSet', arr)
});
} else {
if (infoSetArr.length > 0) {
const arr = []
infoSetArr.forEach(item => {
for (const key in data[0]) {
if (item.code === key) {
item.value = data[0][key]
arr.push(item)
}
}
})
this.$emit('getInfoSet', arr)
}
this.$forceUpdate()
}
this.$forceUpdate()
} else {
this.$message.error(res.message)
}

@ -317,7 +317,7 @@
<template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1">
<div v-if="row.statuslogs1.length > 0">
<div class="billtrace-btn1">
<div class="billtrace-btn1" style="display: flex;align-items: center;">
<a-spin :spinning="row.webDataLoad">
<a-popover placement="topLeft">
<div slot="content">
@ -332,14 +332,19 @@
<span class="txfcSpan">{{ item.fcopTime }}</span>
</div>
</div>
<div @click="handleGetWebData(row, 'YARD')" :class="{ active: row.statuslogs1[0].txopTime }">
<div
@click="handleGetWebData(row, 'YARD')"
:class="{ active: row.statuslogs1[0].txopTime }">
提箱
</div>
<div @click="handleGetWebData(row, 'YARD')" :class="{ active: row.statuslogs1[0].fcopTime }">
<div
@click="handleGetWebData(row, 'YARD')"
:class="{ active: row.statuslogs1[0].fcopTime }">
返场
</div>
</a-popover>
</a-spin>
<span style="margin-left: 10px;">未提{{ row.txopNumber }}/{{ row.statuslogs1.length }}</span>
</div>
</div>
</div>
@ -2828,6 +2833,15 @@ export default {
})
})
}
if (item.statuslogs1.length > 0) {
let num1 = item.statuslogs1.length
item.statuslogs1.forEach(item => {
if (item.txopTime) {
num1 -= 1
}
})
item.txopNumber = num1
}
if (item.bsstatusname) {
if (this.statusDIct) {
this.statusDIct.forEach(ite => {

@ -156,19 +156,21 @@
:xl="4">
<a-form-model-item
class="pre-from-label"
label="船代11"
label="船代"
prop="forwarder"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback>
<selectView
ref="shipagency"
type="shipagency"
:defaultVal="orderDetails.forwarder"
searchApi="GetForwarderlist"
:searchQuery="{ KeyWord: '' }"
:showLabel="['name', 'showCode']"
searchApi="RelaPortLoadForwarderList"
:searchQuery="{ forwarderCode: '',module:'Booking',portLoadCode:orderDetails.portloadid }"
:showLabel="['forwarder', 'forwarderCode']"
:openSearch="true"
@change="getSelectViewRes"></selectView>
@change="getSelectViewRes"
></selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="5">
@ -1974,6 +1976,7 @@ export default {
yard: $details.yard,
ediCtn: []
}
console.log($data)
if (!isHBL || type === 'enter') {
$details.ctnInputs.forEach((item) => {
$data.ediCtn.push({
@ -2328,7 +2331,7 @@ export default {
},
getSelectViewRes({ type, res }) {
if (['shipagency'].includes(type)) {
this.orderDetails.forwarder = res.name || ''
this.orderDetails.forwarder = res.name || res.forwarder || ''
} else if (['shippername', 'notifypartyname', 'consigneename'].includes(type)) {
this.orderDetails[type] = res.title || ''
this.orderDetails[type.replace('name', 'addR1')] = res.content || ''
@ -2387,6 +2390,7 @@ export default {
} else if (['portloadid', 'portdischargeid', 'placedeliveryid'].includes(type)) {
this.orderDetails[type] = res['ediCode'] || ''
this.orderDetails[type.replace('id', '')] = res['enName'] || ''
this.orderDetails.forwarder = ''
}
console.log('== 模糊搜索后的预定舱 ==', this.orderDetails)
},

@ -311,7 +311,7 @@
<template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1">
<div v-if="row.statuslogs1.length > 0">
<div class="billtrace-btn1">
<div class="billtrace-btn1" style="display: flex;align-items: center;">
<a-spin :spinning="row.webDataLoad">
<a-popover placement="topLeft">
<div slot="content">
@ -338,6 +338,7 @@
</div>
</a-popover>
</a-spin>
<span style="margin-left: 10px;">未提{{ row.txopNumber }}/{{ row.statuslogs1.length }}</span>
</div>
</div>
</div>
@ -1355,7 +1356,7 @@ export default {
return {
spinning: false,
isUpload: false,
deletLoad:false,
deletLoad: false,
webDataTitle: '',
serviceFlag: false,
serviceFd: '',
@ -2836,6 +2837,15 @@ export default {
})
})
}
if (item.statuslogs1.length > 0) {
let num1 = item.statuslogs1.length
item.statuslogs1.forEach(item => {
if (item.txopTime) {
num1 -= 1
}
})
item.txopNumber = num1
}
if (item.bsstatusname) {
if (this.statusDIct) {
this.statusDIct.forEach(ite => {

@ -41,7 +41,7 @@
:not-found-content="null"
>
<a-select-option v-for="item in carrierCodeData" :key="item.code" :value="item.code">
{{ item.name }}
{{ item.name }} / {{ item.showCode }}
</a-select-option>
</a-select>
</a-form-item>

@ -297,6 +297,11 @@
完成任务
</a-button>
</a-col>
<a-col>
<a-button type="primary" @click="OpenModal">
</a-button>
</a-col>
<a-col>
<a-button type="danger" @click="FnCancelTask">
取消任务
@ -330,7 +335,7 @@
</a-row>
</a-spin>
<a-modal v-model="visible" title="生成方式选择" @ok="handleOk" width="40%">
<a-radio-group default-value="GEN_BOOKING" v-model="CreateData.generateMethod">
<a-radio-group v-model="CreateData.generateMethod">
<a-radio value="GEN_BOOKING_SLOT">
直接生成舱位和订舱
</a-radio>
@ -344,6 +349,7 @@
匹配已有订舱
</a-radio>
</a-radio-group>
<a-checkbox style="margin-top: 10px;" v-model="CreateData.isDirectSend"></a-checkbox>
<p class="modaltitle">订舱录入</p>
<a-form class="Editing">
<a-row>
@ -368,13 +374,14 @@
<a-form-item label="联系人:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.customerContactId"
mode="multiple"
v-model="CreateData.customerList"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="ChangeCustomerList">
>
<a-select-option v-for="item in customerByList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
@ -445,6 +452,26 @@
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="客服:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.custserviceId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'custserviceName')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="航线操作:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
@ -826,6 +853,20 @@ export default {
saveService(data) {
data.isYield = !data.isYield
},
OpenModal() {
this.CreateData = {
generateMethod: 'GEN_BOOKING',
customerList: [],
isDirectSend: false
}
this.UserList.forEach(item => {
if (item.id == this.userInfo.id) {
this.CreateData.opId = item.id
this.CreateData.opName = item.name
}
})
this.visible = true
},
getList() {
this.spinning = true
const ApiData = {

Loading…
Cancel
Save