This commit is contained in:
joylink_cuiweidong 2022-07-06 17:16:16 +08:00
commit 5854fa5a60
15 changed files with 283 additions and 48 deletions

View File

@ -678,6 +678,10 @@ export const menuOperate = {
operation: OperationEvent.RailCommand.railQueryTicket.menu.operation, operation: OperationEvent.RailCommand.railQueryTicket.menu.operation,
cmdType: CMD.RAIL.CMD_RAIL_QUERY_TICKET cmdType: CMD.RAIL.CMD_RAIL_QUERY_TICKET
}, },
railGiveTicketTo: {
operation: OperationEvent.RailCommand.railGiveTicketTo.menu.operation,
cmdType: CMD.RAIL.CMD_RAIL_GIVE_TICKET_TO
},
railFillInRegister: { railFillInRegister: {
operation: OperationEvent.RailCommand.railFillInRegister.menu.operation, operation: OperationEvent.RailCommand.railFillInRegister.menu.operation,
cmdType: CMD.RAIL.CMD_RAIL_FILL_IN_REGISTER cmdType: CMD.RAIL.CMD_RAIL_FILL_IN_REGISTER

View File

@ -429,6 +429,7 @@ export default {
CMD_RAIL_FILL_IN_TICKET: {value: 'RAIL_FILL_IN_TICKET', label: '填写票据'}, CMD_RAIL_FILL_IN_TICKET: {value: 'RAIL_FILL_IN_TICKET', label: '填写票据'},
CMD_RAIL_QUERY_TICKET: {value: 'RAIL_QUERY_TICKET', label: '查询票据'}, CMD_RAIL_QUERY_TICKET: {value: 'RAIL_QUERY_TICKET', label: '查询票据'},
CMD_RAIL_FILL_IN_REGISTER: {value: 'RAIL_FILL_IN_REGISTER', label: '填写行车簿册'}, CMD_RAIL_FILL_IN_REGISTER: {value: 'RAIL_FILL_IN_REGISTER', label: '填写行车簿册'},
CMD_RAIL_QUERY_REGISTER: {value: 'RAIL_QUERY_REGISTER', label: '查询行车簿册'} CMD_RAIL_QUERY_REGISTER: {value: 'RAIL_QUERY_REGISTER', label: '查询行车簿册'},
CMD_RAIL_GIVE_TICKET_TO: {value: 'RAIL_GIVE_TICKET_TO', label: '给出票据'}
} }
}; };

View File

@ -3883,6 +3883,12 @@ export const OperationEvent = {
operation: '1204', operation: '1204',
domId: '_Tips-Rail-railQueryTicket' domId: '_Tips-Rail-railQueryTicket'
} }
},
railGiveTicketTo: {
menu: {
operation: '1205',
domId: '_Tips-Rail-railGiveTicketTo'
}
} }
} }
}; };

View File

@ -273,6 +273,9 @@ function handle(state, data) {
case 'SIMULATION_CTC_RUN_PLAN_CONFIRM_SEND': case 'SIMULATION_CTC_RUN_PLAN_CONFIRM_SEND':
state.changedCtcRunplanMap = msg; state.changedCtcRunplanMap = msg;
break; break;
case 'SIMULATION_RAIL_TICKET':
state.ticketInfo = msg;
break;
// //
// // 大铁项目 调度台 运行图信息 初始化消息 // // 大铁项目 调度台 运行图信息 初始化消息
// case 'SIMULATION_RAILWAY_RUN_PLAN_INIT': // case 'SIMULATION_RAILWAY_RUN_PLAN_INIT':
@ -405,6 +408,7 @@ const socket = {
overConversition: {}, // 仿真会话结束 overConversition: {}, // 仿真会话结束
exitConversition: {}, // 仿真成员退出会话 exitConversition: {}, // 仿真成员退出会话
conversationInfo: {}, // 仿真会话消息 conversationInfo: {}, // 仿真会话消息
ticketInfo: {}, // 路票消息
message: {}, // 仿真聊天 message: {}, // 仿真聊天
msgQueue: [], // 命令请求列表(旧版控制权转移可能在用,新版不用这个) msgQueue: [], // 命令请求列表(旧版控制权转移可能在用,新版不用这个)

View File

@ -450,7 +450,6 @@ const training = {
rtn && rtn.valid && commit('next'); rtn && rtn.valid && commit('next');
} }
} }
console.log(rtn, '*********');
resolve(rtn); resolve(rtn);
}).catch(error => { }).catch(error => {
// console.error(error); // console.error(error);

View File

@ -24,7 +24,7 @@ export function handlerUrl(data) {
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
// const data = null; // const data = null;
// BASE_API = 'https://joylink.club/jlcloud'; // BASE_API = 'https://joylink.club/jlcloud';
BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://192.168.3.233/rtss-server'; // BASE_API = 'http://192.168.3.233/rtss-server';
// BASE_API = 'http://114.116.51.125/jlcloud'; // BASE_API = 'http://114.116.51.125/jlcloud';
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪 // BASE_API = 'http://192.168.8.152:9000'; // 袁琪
@ -34,7 +34,7 @@ export function handlerUrl(data) {
// BASE_API = 'http://192.168.3.37:9000'; // 卫志宏 // BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
// BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://b29z135112.zicp.vip';
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛 BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛
// BASE_API = data && data.domainName ? 'https://' + data.domainName : BASE_API; // BASE_API = data && data.domainName ? 'https://' + data.domainName : BASE_API;
BASE_API = data && data.domainName ? 'http://' + data.domainName : BASE_API; BASE_API = data && data.domainName ? 'http://' + data.domainName : BASE_API;
VOICE_API = data && data.resourcesDomainName ? 'https://' + data.resourcesDomainName : 'https://joylink.club/oss/joylink'; VOICE_API = data && data.resourcesDomainName ? 'https://' + data.resourcesDomainName : 'https://joylink.club/oss/joylink';

View File

@ -40,7 +40,7 @@
<div style="position:relative"> <div style="position:relative">
<div v-for="(item, index) in treeData" :key="index" class="proper_box"> <div v-for="(item, index) in treeData" :key="index" class="proper_box">
<div class="proper_title">{{ item.label }}</div> <div class="proper_title">{{ item.label }}</div>
<div v-for="(data, i) in item.children" :key="i" style="position: relative; width: 73px; heigth: 73px; margin-left: 5px; float: left;"> <div v-for="(data, i) in item.children" :key="i" style="position: relative; width: 73px; height: 73px; margin-left: 5px; float: left;">
<div v-if="data.show && item.id == 'driver'" :id="'proper_content_box'+data.id" class="proper_content_box" :class="{'active': data.active,'isInviting':data.isInviting}" @click="handleCheckChange(data)"> <div v-if="data.show && item.id == 'driver'" :id="'proper_content_box'+data.id" class="proper_content_box" :class="{'active': data.active,'isInviting':data.isInviting}" @click="handleCheckChange(data)">
<span class="proper_content_box_text">{{ data.label + (data.userId? '(' + (simulationUsers[data.userId]||{}).nickName + ')': '') }}</span> <span class="proper_content_box_text">{{ data.label + (data.userId? '(' + (simulationUsers[data.userId]||{}).nickName + ')': '') }}</span>
</div> </div>

View File

@ -64,6 +64,7 @@
<menu-train-list v-if="prdType=='02'" @setCenter="setCenter" /> <menu-train-list v-if="prdType=='02'" @setCenter="setCenter" />
<members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" /> <!-- 成员管理 --> <members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" /> <!-- 成员管理 -->
<add-member ref="addMember" :station-list="stationList" /> <add-member ref="addMember" :station-list="stationList" />
<ticket-info v-if="lineCode === '16'" ref="ticketInfo" />
<Jl3d-Device <Jl3d-Device
v-if="deviceif" v-if="deviceif"
v-show="deviceShow" v-show="deviceShow"
@ -110,6 +111,7 @@ import TmtDialog from '@/views/newMap/displayBaSiDi/tmt';
import AtrDialog from '@/views/newMap/displayBaSiDi/atr'; import AtrDialog from '@/views/newMap/displayBaSiDi/atr';
import TrainTrunkDetail from '@/views/newMap/displayBaSiDi/trainTrunkDetail'; import TrainTrunkDetail from '@/views/newMap/displayBaSiDi/trainTrunkDetail';
import DispatcherStation from './dispatcherStation'; import DispatcherStation from './dispatcherStation';
import TicketInfo from '../trainTicket/ticketInfo';
import Vue from 'vue'; import Vue from 'vue';
export default { export default {
@ -138,7 +140,8 @@ export default {
TmtDialog, TmtDialog,
AtrDialog, AtrDialog,
TrainTrunkDetail, TrainTrunkDetail,
DispatcherStation DispatcherStation,
TicketInfo
}, },
data() { data() {
return { return {
@ -274,6 +277,11 @@ export default {
if (list && list.length) { // if (list && list.length) { //
this.checkRoleChange(list); this.checkRoleChange(list);
} }
},
'$store.state.socket.ticketInfo': function(val) {
if (val) {
this.$refs.ticketInfo.doShow(val);
}
} }
}, },
async created() { async created() {

View File

@ -56,6 +56,7 @@
<script> <script>
import eMembers from './e-members'; import eMembers from './e-members';
import { EventBus } from '@/scripts/event-bus';
import { assignUsersPlayRoles } from '@/api/jointSimulation'; import { assignUsersPlayRoles } from '@/api/jointSimulation';
export default { export default {
name: 'MembersManage', name: 'MembersManage',
@ -186,7 +187,7 @@ export default {
ctcOperatorList.push(this.memberData[item.id]); ctcOperatorList.push(this.memberData[item.id]);
break; break;
case 'STATION_ASSISTANT': case 'STATION_ASSISTANT':
this.memberData[item.id].labelName = '车站助理' + +device.name + (item.name ? `-${item.name }` : ''); this.memberData[item.id].labelName = '车站助理-' + device.name + (item.name ? `-${item.name }` : '');
stationAssistantList.push(this.memberData[item.id]); stationAssistantList.push(this.memberData[item.id]);
break; break;
} }
@ -225,6 +226,7 @@ export default {
children: stationAssistantList children: stationAssistantList
} }
]; ];
EventBus.$emit('trainTicketMember', [...stationSupervisorList, ...stationAssistantList]);
this.$nextTick(() => { this.$nextTick(() => {
if (this.$refs.tree) { if (this.$refs.tree) {
this.$refs.tree.filter(this.queryMember); this.$refs.tree.filter(this.queryMember);

View File

@ -1,11 +1,62 @@
<template> <template>
<div>
<div v-for="item in modelList" :key="item.type" class="content-box-list" style="margin-top: 10px">
<div class="title-box">{{ item.name }}</div>
<div class="list-box">
<div
v-for="nor in item.list"
:key="nor.code"
class="list-content"
@mouseenter="mouseenter(nor)"
@mouseleave="mouseleave(nor)"
>
<div class="name">{{ nor.name || nor.code }}</div>
<div class="close" @click="delList(nor, item.list)"><i class="el-icon-close" /></div>
</div>
</div>
</div>
</div>
</template> </template>
<script> <script>
import {mapGetters} from 'vuex';
export default { export default {
name: "multiSelect" name: 'MultiSelect',
data() {
return {
modelList: []
};
},
computed: {
...mapGetters('map', ['seclectDeviceList'])
},
methods: {
mouseenter(model) {
if (model._type == 'Section') {
model.instance.mouseover();
} }
},
mouseleave(model) {
if (model._type == 'Section') {
model.instance.mouseout();
}
},
//
delList(model, list) {
list.forEach((nor, index) => {
if (nor.code == model.code) {
list.splice(index, 1);
}
});
this.seclectDeviceList.forEach((item, index) => {
if (item.code == model.code) {
this.seclectDeviceList.splice(index, 1);
}
});
}
}
};
</script> </script>
<style scoped> <style scoped>

View File

@ -20,7 +20,7 @@
<span>线上发车</span> <span>线上发车</span>
</div> </div>
<div style="font-size: 16px;margin-top: 60px;display: flex;align-items: center;justify-content: end;"> <div style="font-size: 16px;margin-top: 60px;display: flex;align-items: center;justify-content: end;">
<div><span style="color: #f00;">{{ showCentralizedStationName }}</span>站名印车站值班员签名</div> <div><span style="color: #f00;">{{ greenLicenseForm.stationSeal }}</span>站名印车站值班员签名</div>
<el-input v-model="greenLicenseForm.signature" :disabled="switchFlag" size="small" style="width: 80px;" /> <el-input v-model="greenLicenseForm.signature" :disabled="switchFlag" size="small" style="width: 80px;" />
</div> </div>
<div style="font-size: 16px;margin-top: 15px;display: flex;align-items: center;margin-bottom: 10px;justify-content: end;"> <div style="font-size: 16px;margin-top: 15px;display: flex;align-items: center;margin-bottom: 10px;justify-content: end;">
@ -31,6 +31,17 @@
<el-input v-model="greenLicenseForm.day" :disabled="switchFlag" size="small" style="width: 80px;" /> <el-input v-model="greenLicenseForm.day" :disabled="switchFlag" size="small" style="width: 80px;" />
<div>日填发</div> <div>日填发</div>
</div> </div>
<div v-if="switchFlag" style="text-align: center;">
<el-select v-model="memberId" size="small" style="width: 200px" placeholder="请选择">
<el-option
v-for="item in giveMemberList"
:key="item.id"
:label="item.labelName"
:value="item.id"
/>
</el-select>
<el-button size="small" style="margin-left: 10px;" type="primary" @click="giveTicket">给予</el-button>
</div>
</div> </div>
</template> </template>
@ -46,15 +57,25 @@ export default {
type: Boolean, type: Boolean,
required: true required: true
}, },
showCentralizedStationName: { giveMemberList: {
type: String, type: Array,
required: true default() {
return [];
}
} }
}, },
data() { data() {
return { return {
memberId: ''
}; };
},
methods: {
giveTicket() {
if (this.memberId) {
this.$emit('giveTicket', { ticketId: this.greenLicenseForm.id, memberId: this.memberId });
this.memberId = '';
}
}
} }
}; };
</script> </script>

View File

@ -25,8 +25,8 @@
<el-tabs v-model="activeName" type="card" @tab-click="handleClick"> <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="路票填写" name="first"> <el-tab-pane label="路票填写" name="first">
<rail-ticket v-if="attachmentType === 'RAIL_TICKET'" :switch-flag="false" :ticket-form="ticketForm" :station-list="stationList" /> <rail-ticket v-if="attachmentType === 'RAIL_TICKET'" :switch-flag="false" :ticket-form="ticketForm" :station-list="stationList" />
<green-licence v-else-if="attachmentType === 'GREEN_LICENCE'" :switch-flag="false" :green-license-form="greenLicenseForm" :show-centralized-station-name="showCentralizedStationName" /> <green-licence v-else-if="attachmentType === 'GREEN_LICENCE'" :switch-flag="false" :green-license-form="greenLicenseForm" />
<red-licence v-else-if="attachmentType === 'RED_LICENCE'" :show-centralized-station-name="showCentralizedStationName" :switch-flag="false" :red-license-form="redLicenseForm" /> <red-licence v-else-if="attachmentType === 'RED_LICENCE'" :switch-flag="false" :red-license-form="redLicenseForm" />
<div style="text-align: center;"> <div style="text-align: center;">
<el-button size="small" style="margin-top: 10px;" type="primary" @click="submit">提交</el-button> <el-button size="small" style="margin-top: 10px;" type="primary" @click="submit">提交</el-button>
</div> </div>
@ -34,17 +34,17 @@
<el-tab-pane label="路票查询" name="second"> <el-tab-pane label="路票查询" name="second">
<div v-if="attachmentType === 'RAIL_TICKET'" style="height: 450px;overflow-y: auto;"> <div v-if="attachmentType === 'RAIL_TICKET'" style="height: 450px;overflow-y: auto;">
<template v-for="(item, index) in railTicketList"> <template v-for="(item, index) in railTicketList">
<rail-ticket :key="index" :switch-flag="true" :ticket-form="item" :station-list="stationList" /> <rail-ticket :key="index" :switch-flag="true" :ticket-form="item" :station-list="stationList" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
</template> </template>
</div> </div>
<div v-else-if="attachmentType === 'GREEN_LICENCE'" style="height: 450px;overflow-y: auto;"> <div v-else-if="attachmentType === 'GREEN_LICENCE'" style="height: 450px;overflow-y: auto;">
<template v-for="(item, index) in greenLicenseList"> <template v-for="(item, index) in greenLicenseList">
<green-licence :key="index" :show-centralized-station-name="showCentralizedStationName" :switch-flag="true" :green-license-form="item" /> <green-licence :key="index" :switch-flag="true" :green-license-form="item" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
</template> </template>
</div> </div>
<div v-else-if="attachmentType === 'RED_LICENCE'" style="height: 450px;overflow-y: auto;"> <div v-else-if="attachmentType === 'RED_LICENCE'" style="height: 450px;overflow-y: auto;">
<template v-for="(item, index) in redLicenseList"> <template v-for="(item, index) in redLicenseList">
<red-licence :key="index" :show-centralized-station-name="showCentralizedStationName" :switch-flag="true" :red-license-form="item" /> <red-licence :key="index" :switch-flag="true" :red-license-form="item" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
</template> </template>
</div> </div>
</el-tab-pane> </el-tab-pane>
@ -132,6 +132,7 @@ import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuO
import RailTicket from './trainTicket'; import RailTicket from './trainTicket';
import GreenLicence from './greenLicence'; import GreenLicence from './greenLicence';
import RedLicence from './redLicence'; import RedLicence from './redLicence';
import { EventBus } from '@/scripts/event-bus';
export default { export default {
name: 'Index', name: 'Index',
components: { components: {
@ -146,13 +147,14 @@ export default {
railTicketList: [], railTicketList: [],
greenLicenseList: [], greenLicenseList: [],
redLicenseList: [], redLicenseList: [],
giveMemberList: [],
activeName: 'first', activeName: 'first',
ticketForm: { ticketForm: {
number: '', number: '',
tripNumber: '', tripNumber: '',
station: '', station: '',
nextStation: '', nextStation: '',
stationSeal: true, stationSeal: '',
no: '', no: '',
deputy: false deputy: false
}, },
@ -161,7 +163,7 @@ export default {
reason: '', reason: '',
tripNumber: '', tripNumber: '',
line: '', line: '',
stationSeal: true, stationSeal: '',
signature: '', signature: '',
year: '', year: '',
moon: '', moon: '',
@ -183,7 +185,7 @@ export default {
noticeHour2: '', noticeHour2: '',
noticeMinute2: '', noticeMinute2: '',
noticeTripNumber2: '', noticeTripNumber2: '',
stationSeal: true, stationSeal: '',
signature: '', signature: '',
year: '', year: '',
moon: '', moon: '',
@ -205,13 +207,23 @@ export default {
computed: { computed: {
...mapGetters('map', [ ...mapGetters('map', [
'stationList' 'stationList'
]), ])
showCentralizedStationName() { },
if (this.$store.state.map.showCentralizedStationCode) { watch: {
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode); '$store.state.map.showCentralizedStationCode': function (val) {
if (station) { return station.name; } else { return ''; } const station = this.$store.getters['map/getDeviceByCode'](val);
} else { return ''; } if (station) {
this.ticketForm.station = station.name;
this.ticketForm.stationSeal = station.name;
this.greenLicenseForm.stationSeal = station.name;
this.redLicenseForm.stationSeal = station.name;
} }
}
},
mounted() {
EventBus.$on('trainTicketMember', (memberList) => {
this.giveMemberList = memberList;
});
}, },
methods: { methods: {
doClose() { doClose() {
@ -219,7 +231,13 @@ export default {
}, },
doShow() { doShow() {
this.trainTicketShow = true; this.trainTicketShow = true;
this.ticketForm.station = this.showCentralizedStationName; const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (station) {
this.ticketForm.station = station.name;
this.ticketForm.stationSeal = station.name;
this.greenLicenseForm.stationSeal = station.name;
this.redLicenseForm.stationSeal = station.name;
}
}, },
handleClick() { handleClick() {
if (this.activeName === 'second') { if (this.activeName === 'second') {
@ -232,11 +250,12 @@ export default {
} }
}, },
clearData() { clearData() {
this.ticketForm = {number: '', tripNumber: '', station: '', nextStation: '', stationSeal: true, no: '', deputy: false}; const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode) || {};
this.greenLicenseForm = {number: '', reason: '', tripNumber: '', line: '', stationSeal: true, signature: '', year: '', moon: '', day: '' }; this.ticketForm = {number: '', tripNumber: '', station: station.name, nextStation: '', stationSeal: station.name, no: '', deputy: false};
this.greenLicenseForm = {number: '', reason: '', tripNumber: '', line: '', stationSeal: station.name, signature: '', year: '', moon: '', day: '' };
this.redLicenseForm = {number: '', licenseReceived: true, licenseTripNumber: '', licenseStation: '', licenseNextStation: '', licenseHour: '', this.redLicenseForm = {number: '', licenseReceived: true, licenseTripNumber: '', licenseStation: '', licenseNextStation: '', licenseHour: '',
licenseMinute: '', licenseTripNumber2: '', noticeTripNumber: '', noticeHour1: '', noticeMinute1: '', noticeTripNumber1: '', noticeHour2: '', licenseMinute: '', licenseTripNumber2: '', noticeTripNumber: '', noticeHour1: '', noticeMinute1: '', noticeTripNumber1: '', noticeHour2: '',
noticeMinute2: '', noticeTripNumber2: '', stationSeal: true, signature: '', year: '', moon: '', day: ''}; noticeMinute2: '', noticeTripNumber2: '', stationSeal: station.name, signature: '', year: '', moon: '', day: ''};
}, },
query() { query() {
const params = { type: this.attachmentType }; const params = { type: this.attachmentType };
@ -265,10 +284,16 @@ export default {
} }
commitOperate(menuOperate.Rail.railFillInTicket, params, 3).then(({valid, operate})=>{ commitOperate(menuOperate.Rail.railFillInTicket, params, 3).then(({valid, operate})=>{
this.clearData(); this.clearData();
this.ticketForm.station = this.showCentralizedStationName;
}).catch(()=>{ }).catch(()=>{
this.$message.error('提交路票失败!'); this.$message.error('提交路票失败!');
}); });
},
giveTicket(params) {
commitOperate(menuOperate.Rail.railGiveTicketTo, params, 3).then(({valid, operate}) => {
this.query();
}).catch(()=> {
this.$message.error('给予路票失败!');
});
} }
} }
}; };

View File

@ -48,7 +48,7 @@
<span>次列车</span> <span>次列车</span>
</div> </div>
<div style="font-size: 16px;margin-top: 60px;display: flex;align-items: center;justify-content: end;"> <div style="font-size: 16px;margin-top: 60px;display: flex;align-items: center;justify-content: end;">
<div><span style="color: #f00;">{{ showCentralizedStationName }}</span>站名印车站值班员签名</div> <div><span style="color: #f00;">{{ redLicenseForm.stationSeal }}</span>站名印车站值班员签名</div>
<el-input v-model="redLicenseForm.signature" :disabled="switchFlag" size="small" style="width: 80px;" /> <el-input v-model="redLicenseForm.signature" :disabled="switchFlag" size="small" style="width: 80px;" />
</div> </div>
<div style="font-size: 16px;margin-top: 15px;display: flex;align-items: center;margin-bottom: 10px;justify-content: end;"> <div style="font-size: 16px;margin-top: 15px;display: flex;align-items: center;margin-bottom: 10px;justify-content: end;">
@ -59,6 +59,17 @@
<el-input v-model="redLicenseForm.day" :disabled="switchFlag" size="small" style="width: 80px;" /> <el-input v-model="redLicenseForm.day" :disabled="switchFlag" size="small" style="width: 80px;" />
<div>日填发</div> <div>日填发</div>
</div> </div>
<div v-if="switchFlag" style="text-align: center;">
<el-select v-model="memberId" size="small" style="width: 200px" placeholder="请选择">
<el-option
v-for="item in giveMemberList"
:key="item.id"
:label="item.labelName"
:value="item.id"
/>
</el-select>
<el-button size="small" style="margin-left: 10px;" type="primary" @click="giveTicket">给予</el-button>
</div>
</div> </div>
</template> </template>
@ -74,15 +85,25 @@ export default {
type: Boolean, type: Boolean,
required: true required: true
}, },
showCentralizedStationName: { giveMemberList: {
type: String, type: Array,
required: true default() {
return [];
}
} }
}, },
data() { data() {
return { return {
memberId: ''
}; };
},
methods: {
giveTicket() {
if (this.memberId) {
this.$emit('giveTicket', { ticketId: this.redLicenseForm.id, memberId: this.memberId });
this.memberId = '';
}
}
} }
}; };
</script> </script>

View File

@ -0,0 +1,71 @@
<template>
<el-dialog
title="路票"
:visible="trainTicketShow"
width="640px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
center
>
<train-ticket v-if="trainTicket.type === 'RAIL_TICKET'" :station-list="stationList" :switch-flag="true" :ticket-form="trainTicket" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
<green-licence v-else-if="trainTicket.type === 'GREEN_LICENCE'" :switch-flag="true" :green-license-form="trainTicket" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
<red-licence v-else-if="trainTicket.type === 'RED_LICENCE'" :switch-flag="true" :red-license-form="trainTicket" :give-member-list="giveMemberList" @giveTicket="giveTicket" />
</el-dialog>
</template>
<script>
import TrainTicket from './trainTicket';
import RedLicence from './redLicence';
import GreenLicence from './greenLicence';
import {mapGetters} from 'vuex';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'TicketInfo',
components: {
TrainTicket,
RedLicence,
GreenLicence
},
data() {
return {
trainTicketShow: false,
trainTicket: {},
giveMemberList: []
};
},
computed: {
...mapGetters('map', [
'stationList'
])
},
mounted() {
EventBus.$on('trainTicketMember', (memberList) => {
this.giveMemberList = memberList;
});
},
methods: {
doClose() {
this.trainTicketShow = false;
},
doShow(info) {
this.trainTicketShow = true;
this.trainTicket = info;
},
giveTicket(params) {
commitOperate(menuOperate.Rail.railGiveTicketTo, params, 3).then(({valid, operate}) => {
this.$message.success('给予路票成功!');
this.doClose();
}).catch(()=> {
this.$message.error('给予路票失败!');
});
}
}
};
</script>
<style scoped>
</style>

View File

@ -25,14 +25,22 @@
</div> </div>
</div> </div>
<div style="display: flex; justify-content: space-between;font-size: 18px;margin-top: 25px;margin-bottom: 25px;align-items: center;"> <div style="display: flex; justify-content: space-between;font-size: 18px;margin-top: 25px;margin-bottom: 25px;align-items: center;">
<div style="margin-left: 50px;"><span style="color: #f00">{{ ticketForm.station }}</span>站名印</div> <div style="margin-left: 50px;"><span style="color: #f00">{{ ticketForm.stationSeal }}</span>站名印</div>
<div> <div>
<span>编号</span> <span>编号</span>
<el-input v-model="ticketForm.no" size="small" :disabled="switchFlag" style="width: 80px;" /> <el-input v-model="ticketForm.no" size="small" :disabled="switchFlag" style="width: 80px;" />
</div> </div>
</div> </div>
<div style="text-align: center;"> <div v-if="switchFlag" style="text-align: center;">
<!-- <el-select v-model=""></el-select>--> <el-select v-model="memberId" size="small" style="width: 200px" placeholder="请选择">
<el-option
v-for="item in giveMemberList"
:key="item.id"
:label="item.labelName"
:value="item.id"
/>
</el-select>
<el-button size="small" style="margin-left: 10px;" type="primary" @click="giveTicket">给予</el-button>
</div> </div>
</div> </div>
</template> </template>
@ -52,12 +60,26 @@ export default {
stationList: { stationList: {
type: Array, type: Array,
required: true required: true
},
giveMemberList: {
type: Array,
default() {
return [];
}
} }
}, },
data() { data() {
return { return {
memberId: ''
}; };
},
methods: {
giveTicket() {
if (this.memberId) {
this.$emit('giveTicket', { ticketId: this.ticketForm.id, memberId: this.memberId });
this.memberId = '';
}
}
} }
}; };
</script> </script>