| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- <template>
- <div class="VisitSchedule-all" v-loading.fullscreen.lock="fullscreenLoading">
- <div class="VisitSchedule-search-head">
- <el-form ref="form" label-width="75px">
- <el-form-item style="width: 340px;" label="团组名称:">
- <el-select @change="ApprovalJourneyInit" filterable v-model="diid" placeholder="请选择团组名称">
- <el-option v-for="(item, index) in groupList" :key="index" :label="item.teamName"
- :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <div style="display: flex;gap: 5px;">
- <div style="flex: 1">
- <el-select filterable v-model="blackCodeId" placeholder="请选择黑屏代码">
- <el-option v-for="(item, index) in blackCodeList" :key="index" :label="item.title"
- :value="item.id"></el-option>
- </el-select>
- </div>
- <div>
- <el-button style="margin-left: 0px;" @click="CreateApprovalJourney"
- type="primary">导入机票信息</el-button>
- <el-button style="margin-left: 0px;" @click="SaveApprovalJourney" type="primary">保存</el-button>
- <el-button style="margin-left: 0px;" @click="DeleteApprovalJourney" type="primary">删除</el-button>
- <el-select style="width: auto;" filterable v-model="fileIndex" placeholder="请选择文件类型">
- <el-option v-for="(item, index) in fileTempList" :key="index" :label="item.fileName"
- :value="item.index"></el-option>
- </el-select>
- <el-button @click="ExportApprovalJourneyWord" type="primary">导出word</el-button>
- </div>
- </div>
- </div>
- <div class="VisitSchedule-content">
- <div class="VisitSchedule-content-title">出访行程</div>
- <div class="VisitSchedule-content-info">
- 团组名:{{ groupInfo.teamName }} 团组号:{{ groupInfo.tourCode
- }} 出访日期:{{ groupInfo.visitStartDate + '~' + groupInfo.visitEndDate
- }} {{ groupInfo.visitDays + '天/' + groupInfo.visitPNumber + '人' }}
- </div>
- <div class="VisitSchedule-content-table">
- <div v-for="(item, index) in tablearr" :key="index" class="VisitSchedule-content-ul">
- <div class="content-ul-title">{{ item.date }}</div>
- <div v-for="(items, index) in item.chiList" :key="index" class="VisitSchedule-content-li">
- <div class="VisitSchedule-content-time">
- <el-time-picker is-range format='HH:mm' value-format='HH:mm' v-model="items.timeInterval"
- :default-value="value1" range-separator="至" start-placeholder="开始时间"
- end-placeholder="结束时间" placeholder="选择时间范围">
- </el-time-picker>
- </div>
- <div class="VisitSchedule-content-remark">
- <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="items.details">
- </el-input>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- diid: '',
- groupList: [],
- tablearr: [],
- userId: '',
- value1: ['', ''],
- textarea: '',
- ss: [0, 0],
- groupInfo: {},
- fullscreenLoading: false,
- blackCodeId: '',
- blackCodeList: [],
- fileTempList: [],
- fileIndex: 1,
- }
- },
- methods: {
- //报批行程初始化
- ApprovalJourneyInit() {
- this.groupInfo = {};
- this.tablearr = [];
- this.fullscreenLoading = true;
- this.blackCodeId = '';
- this.blackCodeList = [];
- var url = "/api/Groups/ApprovalJourneyInit"
- var that = this
- this.$axios({
- method: 'post',
- url: url,
- headers: {
- Authorization: 'Bearer '
- },
- data: {
- diid: that.diid == '' ? -1 : that.diid,
- userId: that.userId,
- }
- }).then(function (res) {
- if (res.data.code == 200) {
- that.groupList = res.data.data.groupList;
- if (that.diid == '') {
- that.diid = that.groupList[0].id;
- }
- that.tablearr = res.data.data.content;
- for (let i = 0; i < that.tablearr.length; i++) {
- for (let a = 0; a < that.tablearr[i].chiList.length; a++) {
- if (that.tablearr[i].chiList[a].timeInterval.length == 1) {
- that.tablearr[i].chiList[a].timeInterval = that.value1;
- }
- }
- }
- that.groupInfo = res.data.data.groupInfo;
- that.fullscreenLoading = false;
- that.blackCodeList = res.data.data.blackCodeList;
- that.fileTempList = res.data.data.fileTempList;
- } else {
- that.$message({
- message: res.data.msg,
- duration: 1000,
- type: "error"
- });
- that.fullscreenLoading = false;
- }
- }).catch(function (error) {
- that.$message.error('请联系信息部!');
- });
- },
- //报批行程保存
- SaveApprovalJourney() {
- var url = "/api/Groups/SaveApprovalJourney"
- var that = this
- this.$axios({
- method: 'post',
- url: url,
- headers: {
- Authorization: 'Bearer '
- },
- data: {
- userId: that.userId,
- arr: that.tablearr
- }
- }).then(function (res) {
- if (res.data.code == 200) {
- that.$message({
- message: res.data.msg,
- type: 'success'
- });
- that.ApprovalJourneyInit();
- } else {
- that.$message({
- message: res.data.msg,
- duration: 1000,
- type: "error"
- });
- }
- }).catch(function (error) {
- that.$message.error('请联系信息部!');
- });
- },
- //报批行程删除
- DeleteApprovalJourney() {
- var url = "/api/Groups/DeleteApprovalJourney"
- var that = this
- this.$axios({
- method: 'post',
- url: url,
- headers: {
- Authorization: 'Bearer '
- },
- data: {
- diid: that.diid,
- userId: that.userId,
- }
- }).then(function (res) {
- if (res.data.code == 200) {
- that.$message({
- message: res.data.msg,
- type: 'success'
- });
- that.ApprovalJourneyInit();
- } else {
- that.$message({
- message: res.data.msg,
- duration: 1000,
- type: "error"
- });
- }
- }).catch(function (error) {
- that.$message.error('请联系信息部!');
- });
- },
- //报批行程导入机票信息
- CreateApprovalJourney() {
- if (!this.blackCodeId) {
- this.$message({
- message: '请选择黑屏代码',
- duration: 1000,
- type: "error"
- });
- return;
- }
- var url = "/api/Groups/CreateApprovalJourney"
- var that = this
- this.$axios({
- method: 'post',
- url: url,
- headers: {
- Authorization: 'Bearer '
- },
- data: {
- diid: that.diid,
- userid: that.userId,
- BlackCodeId: that.blackCodeId
- }
- }).then(function (res) {
- if (res.data.code == 200) {
- that.$message({
- message: res.data.msg,
- type: 'success'
- });
- that.tablearr = res.data.data;
- for (let i = 0; i < that.tablearr.length; i++) {
- for (let a = 0; a < that.tablearr[i].chiList.length; a++) {
- if (that.tablearr[i].chiList[a].timeInterval.length == 1) {
- that.tablearr[i].chiList[a].timeInterval = that.value1;
- }
- }
- }
- } else {
- that.$message({
- message: res.data.msg,
- duration: 1000,
- type: "error"
- });
- }
- }).catch(function (error) {
- that.$message.error('请联系信息部!');
- });
- },
- //报批行程导出
- ExportApprovalJourneyWord() {
- if (!this.fileIndex) {
- this.$message({
- message: '请选择文件类型',
- duration: 1000,
- type: "error"
- });
- return;
- }
- var url = "/api/Groups/ExportApprovalJourneyWord"
- var that = this
- this.$axios({
- method: 'post',
- url: url,
- headers: {
- Authorization: 'Bearer '
- },
- data: {
- diid: that.diid,
- fileIndex: this.fileIndex
- }
- }).then(function (res) {
- if (res.data.code == 200) {
- that.$message({
- message: "导出成功!",
- type: 'success'
- });
- window.open(res.data.data)
- } else {
- that.$message({
- message: res.data.msg,
- duration: 1000,
- type: "error"
- });
- }
- }).catch(function (error) {
- that.$message.error('请联系信息部!');
- });
- },
- },
- mounted() {
- this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
- this.ApprovalJourneyInit();
- }
- }
- </script>
- <style>
- .VisitSchedule-all {
- background-color: #fff;
- padding: 10px;
- box-shadow: 0 0 5px #0005;
- border-radius: 10px;
- min-height: 830px;
- }
- .VisitSchedule-search-head {
- display: flex;
- justify-content: space-between;
- }
- .VisitSchedule-search-head .el-select {
- width: 100%;
- }
- .VisitSchedule-content-table {
- padding: 10px 0;
- border: 1px solid #DCDFE6;
- }
- .VisitSchedule-content-li {
- border-top: 1px solid #DCDFE6;
- display: flex;
- align-items: center;
- }
- .VisitSchedule-content-time {
- padding: 10px;
- width: 25%;
- }
- .VisitSchedule-content-remark {
- width: 75%;
- padding: 10px;
- }
- .VisitSchedule-content-time .el-range-editor.el-input__inner {
- width: 100%;
- }
- .content-ul-title {
- padding: 10px;
- }
- .VisitSchedule-content-ul .VisitSchedule-content-li:last-child {
- border-bottom: 1px solid #DCDFE6;
- }
- .VisitSchedule-content-title {
- text-align: center;
- margin-bottom: 10px;
- color: #555;
- font-size: 17px;
- font-weight: 600;
- }
- .VisitSchedule-content-info {
- text-align: center;
- color: #555;
- font-size: 15px;
- margin-bottom: 20px;
- }
- </style>
|