backwardtabke.vue 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <div>
  3. <div class="backward-all">
  4. <div class="backward-head">
  5. <div class="backward-head-li">
  6. <label>团组名称:</label>
  7. <el-select @change="changegroup" style="width:250px" v-model="value" filterable
  8. placeholder="请选择">
  9. <el-option v-for="item in options" :key="item.id" :label="item.teamName" :value="item.id">
  10. </el-option>
  11. </el-select>
  12. </div>
  13. <div class="backward-head-li">
  14. <span style="color: red;"><spu>*</spu>会务倒退表没有预览直接下载即可</span>
  15. <el-button @click="InforRetrogressTableFileDownload" type="primary">导出会务倒退表</el-button>
  16. <el-button @click="PostInvertedListCreate" type="primary">生成倒推表</el-button>
  17. <el-button @click="PostInvertedListUpdate" type="primary">保 存</el-button>
  18. <el-button @click="PostInvertedListFileDownload" type="primary">导出倒推表</el-button>
  19. </div>
  20. </div>
  21. <div class="backward-title">
  22. <div class="backward-title-yi">{{groupinfo.teamName}}团出行准备流程表</div>
  23. <div class="backward-title-er">
  24. 出访国家:{{groupinfo.visitCountry}}&nbsp;&nbsp;&nbsp;&nbsp;出访时间:{{groupinfo.visitStartDate|capitalize}}</div>
  25. </div>
  26. <div class="backward-table">
  27. <div class="backward-table-li">
  28. <div class="backward-li-span">
  29. <el-checkbox v-model="datainfo.isSelectedAirportd"></el-checkbox>
  30. </div>
  31. <div class="backward-li-span">
  32. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.approvalDataDt" type="date" placeholder="选择日期">
  33. </el-date-picker>
  34. </div>
  35. <div class="backward-li-span">报批资料准备</div>
  36. <div class="backward-li-span">
  37. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  38. v-model="datainfo.approvalDataRemark">
  39. </el-input>
  40. </div>
  41. </div>
  42. <div class="backward-table-li">
  43. <div class="backward-li-span">
  44. <el-checkbox v-model="datainfo.isSelectedApprovalData"></el-checkbox>
  45. </div>
  46. <div class="backward-li-span">
  47. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.approvalDt" type="date" placeholder="选择日期">
  48. </el-date-picker>
  49. </div>
  50. <div class="backward-li-span">
  51. <div style="line-height: 25px;">
  52. 报批/提供送签资料
  53. </div>
  54. <div style="line-height: 25px;">
  55. <el-radio v-model="datainfo.approvalType" label="1">预批件</el-radio>
  56. <el-radio v-model="datainfo.approvalType" label="2">正常批件</el-radio>
  57. </div>
  58. </div>
  59. <div class="backward-li-span">
  60. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  61. v-model="datainfo.approvalRemark">
  62. </el-input>
  63. </div>
  64. </div>
  65. <div class="backward-table-li">
  66. <div class="backward-li-span">
  67. <el-checkbox v-model="datainfo.isSelectedIssueApproval"></el-checkbox>
  68. </div>
  69. <div class="backward-li-span">
  70. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.issueApprovalDt" type="date" placeholder="选择日期">
  71. </el-date-picker>
  72. </div>
  73. <div class="backward-li-span"><div style="line-height: 25px;padding: 0;">出批件</div><div style="line-height: 25px;padding: 0;">护照办理</div></div>
  74. <div class="backward-li-span">
  75. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  76. v-model="datainfo.issueApprovalRemark">
  77. </el-input>
  78. </div>
  79. </div>
  80. <!-- <div class="backward-table-li">
  81. <div class="backward-li-span">
  82. <el-date-picker v-model="datainfo.applyPassportDt" type="date" placeholder="选择日期">
  83. </el-date-picker>
  84. </div>
  85. <div class="backward-li-span">护照办理</div>
  86. <div class="backward-li-span">
  87. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  88. v-model="datainfo.applyPassportRemark">
  89. </el-input>
  90. </div>
  91. </div> -->
  92. <div class="backward-table-li">
  93. <div class="backward-li-span">
  94. <el-checkbox v-model="datainfo.isSelectedVisaInfo"></el-checkbox>
  95. </div>
  96. <div class="backward-li-span">
  97. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.visaInformationDt" type="date" placeholder="选择日期">
  98. </el-date-picker>
  99. </div>
  100. <div class="backward-li-span">签证资料准备</div>
  101. <div class="backward-li-span">
  102. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  103. v-model="datainfo.visaInformationRemark">
  104. </el-input>
  105. </div>
  106. </div>
  107. <div class="backward-table-li">
  108. <div class="backward-li-span">
  109. <el-checkbox v-model="datainfo.isSelectedSendVisa"></el-checkbox>
  110. </div>
  111. <div class="backward-li-span">
  112. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.sendVisaDt" type="date" placeholder="选择日期">
  113. </el-date-picker>
  114. </div>
  115. <div class="backward-li-span">送签签证</div>
  116. <div class="backward-li-span">
  117. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  118. v-model="datainfo.sendVisaRemark">
  119. </el-input>
  120. </div>
  121. </div>
  122. <div class="backward-table-li">
  123. <div class="backward-li-span">
  124. <!-- <el-checkbox v-model="isSelectedAirportd"></el-checkbox> -->
  125. </div>
  126. <div class="backward-li-span">
  127. 送签国家选择:
  128. </div>
  129. <div class="backward-li-span"></div>
  130. <div class="backward-li-span">
  131. <el-table :data="datainfo.visaCountryData" border style="width: 100%">
  132. <el-table-column prop="country" label="国家">
  133. <template slot-scope="scope">
  134. <el-input v-model="scope.row.country" placeholder="请输入内容"></el-input>
  135. </template>
  136. </el-table-column>
  137. <el-table-column prop="officialTypeId" label="公务类型" width="180">
  138. <template slot-scope="scope">
  139. <el-select style="width:100%" v-model="scope.row.officialTypeId" clearable placeholder="请选择"
  140. @change="filterStatus(value)">
  141. <el-option v-for="item in officialTypeData" :key="item.id" :label="item.name"
  142. :value="item.id">
  143. </el-option>
  144. </el-select>
  145. </template>
  146. </el-table-column>
  147. <el-table-column prop="visaTypeId" label="签证类型" width="180">
  148. <template slot-scope="scope">
  149. <el-select style="width:100%" v-model="scope.row.visaTypeId" clearable placeholder="请选择"
  150. @change="filterStatus(value)">
  151. <el-option v-for="item in visaTypeData" :key="item.id" :label="item.name"
  152. :value="item.id">
  153. </el-option>
  154. </el-select>
  155. </template>
  156. </el-table-column>
  157. <el-table-column prop="visaDay" label="签证时间" width="180">
  158. <template slot-scope="scope">
  159. <el-input-number style="width:100%" :min="1" :precision="0" placeholder="数量" v-model="scope.row.visaDay" :controls='false'>
  160. </el-input-number>
  161. </template>
  162. </el-table-column>
  163. </el-table>
  164. </div>
  165. </div>
  166. <div class="backward-table-li">
  167. <div class="backward-li-span">
  168. <el-checkbox v-model="datainfo.isSelectedIssueVisa"></el-checkbox>
  169. </div>
  170. <div class="backward-li-span">
  171. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.issueVisaDt" type="date" placeholder="选择日期">
  172. </el-date-picker>
  173. </div>
  174. <div class="backward-li-span">出签</div>
  175. <div class="backward-li-span">
  176. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  177. v-model="datainfo.issueVisaRemark">
  178. </el-input>
  179. </div>
  180. </div>
  181. <div class="backward-table-li">
  182. <div class="backward-li-span">
  183. <el-checkbox v-model="datainfo.isSelectedAirTicket"></el-checkbox>
  184. </div>
  185. <div class="backward-li-span">
  186. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.airTicketDt" type="date" placeholder="选择日期">
  187. </el-date-picker>
  188. </div>
  189. <div class="backward-li-span">机票</div>
  190. <div class="backward-li-span">
  191. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  192. v-model="datainfo.airTicketRemark">
  193. </el-input>
  194. </div>
  195. </div>
  196. <div class="backward-table-li">
  197. <div class="backward-li-span">
  198. <el-checkbox v-model="datainfo.isSelectedHotel"></el-checkbox>
  199. </div>
  200. <div class="backward-li-span">
  201. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.hotelDt" type="date" placeholder="选择日期">
  202. </el-date-picker>
  203. </div>
  204. <div class="backward-li-span">酒店</div>
  205. <div class="backward-li-span">
  206. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  207. v-model="datainfo.hotelRemark">
  208. </el-input>
  209. </div>
  210. </div>
  211. <div class="backward-table-li">
  212. <div class="backward-li-span">
  213. <el-checkbox v-model="datainfo.isSelectedPreTripMeeting"></el-checkbox>
  214. </div>
  215. <div class="backward-li-span">
  216. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.preTripMeetingDt" type="date" placeholder="选择日期">
  217. </el-date-picker>
  218. </div>
  219. <div class="backward-li-span">开行前会</div>
  220. <div class="backward-li-span">
  221. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  222. v-model="datainfo.preTripMeetingRemark">
  223. </el-input>
  224. </div>
  225. </div>
  226. <div class="backward-table-li">
  227. <div class="backward-li-span">
  228. <el-checkbox v-model="datainfo.isSelectedAirportdDropOff"></el-checkbox>
  229. </div>
  230. <div class="backward-li-span">
  231. <el-date-picker value-format="yyyy-MM-dd" v-model="datainfo.airportdDropOffDt" type="date" placeholder="选择日期">
  232. </el-date-picker>
  233. </div>
  234. <div class="backward-li-span">送机</div>
  235. <div class="backward-li-span">
  236. <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" placeholder="请输入内容"
  237. v-model="datainfo.airportdDropOffRemark">
  238. </el-input>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. </div>
  244. </template>
  245. <script>
  246. export default {
  247. data () {
  248. return {
  249. userId:'',
  250. token:'',
  251. value:'',
  252. options:[],
  253. groupinfo:{},
  254. value1:'',
  255. radio:'1',
  256. datainfo:{
  257. airportdDropOffDt:'',//送机 - A
  258. airportdDropOffRemark:'',//送机 备注
  259. applyPassportDt:'',//办护照时间 - B
  260. applyPassportRemark:'',//办护照 备注
  261. approvalDataDt:'',//报批资料准备时间 - A
  262. approvalDataRemark:'',//报批资料准备 备注
  263. approvalDt:'',//报批时间 - A
  264. approvalRemark:'',//报批 备注
  265. approvalType:0,//报批时间 1 预批件 2 正常批件 默认值??-1
  266. diId:0,
  267. id:0,
  268. isAirportdDropOff:0,//送机 是否完成
  269. isApplyPassport:0,//办护照 是否完成
  270. isApproval:0,//报批 是否完成
  271. isApprovalData:0,//报批资料准备 是否完成
  272. isIssueApproval:0,//出批件 是否完成
  273. isIssueVisa:0,//出签 是否完成
  274. isPreTripMeeting:0,//行前会 是否完成
  275. isQuery:false,//查询标识 true 需提醒客户该团未创建倒推表
  276. isSendVisa:0,//送签 是否完成
  277. isVisaInformation:0,//签证资料准备 是否完成
  278. issueApprovalDt:'',//出批件时间 - A
  279. issueApprovalRemark:'',//出批件时间 备注
  280. issueVisaDt:'',//出签时间 - B
  281. issueVisaRemark:'',//出签 备注
  282. airTicketDt:'',//机票 - B
  283. isAirTicket:0,//机票 是否完成
  284. airTicketRemark:'',//机票 备注
  285. hotelDt:'',//酒店 - B
  286. isHotel:0,//酒店 是否完成
  287. hotelRemark:'',//酒店 备注
  288. isSelectedAirportd:0,//报批资料准备
  289. isSelectedApprovalData:0,//报批/提供送签资料 是否选中
  290. isSelectedIssueApproval:0,//出批件 是否选中
  291. isSelectedVisaInfo:0,//签证资料准备 是否选中
  292. isSelectedSendVisa:0,//送签签证 是否选中
  293. isSelectedIssueVisa:0,//出签 是否选中
  294. isSelectedAirTicket:0,//机票 是否选中
  295. isSelectedHotel:0,//酒店 是否选中
  296. isSelectedPreTripMeeting:0,//行前会 是否选中
  297. isSelectedAirportdDropOff:0,//送机 是否选中
  298. preTripMeetingDt:'',//行前会 - A
  299. preTripMeetingRemark:'',//行前会 备注
  300. sendVisaDt:'',//送签时间 - B
  301. sendVisaRemark:'',//送签 备注
  302. visaCountryData:[],
  303. visaInformationDt:'',//签证资料准备时间
  304. visaInformationRemark:'',//签证资料准备 备注
  305. },
  306. officialTypeData:[],
  307. visaTypeData:[],
  308. }
  309. },
  310. methods:{
  311. //获取团组list
  312. GetGroupNameList() {
  313. var url = "/api/Groups/PostInvertedListInit"
  314. var that = this
  315. this.$axios({
  316. method: 'post',
  317. url: url,
  318. headers: {
  319. Authorization: 'Bearer ' + this.token
  320. },
  321. data: {
  322. portType: 1
  323. }
  324. }).then(function (res) {
  325. if (res.data.code == 200) {
  326. that.options=res.data.data.groupData;
  327. that.value=that.options[0].id;
  328. that.officialTypeData=res.data.data.officialTypeData;
  329. that.visaTypeData=res.data.data.visaTypeData;
  330. that.officialTypeData.push({id:-1,name:'未选择'});
  331. that.visaTypeData.push({id:-1,name:'未选择'});
  332. that.PostShareGroupInfo();
  333. that.PostInvertedListInfo();
  334. }else{
  335. that.$message.error(res.data.msg);
  336. }
  337. }).catch(function (error) {
  338. that.$message.error(error);
  339. });
  340. },
  341. //获取团组倒推表
  342. PostInvertedListInfo() {
  343. var url = "/api/Groups/PostInvertedListInfo"
  344. var that = this
  345. this.$axios({
  346. method: 'post',
  347. url: url,
  348. headers: {
  349. Authorization: 'Bearer ' + that.token
  350. },
  351. data: {
  352. portType: 1,
  353. diId: that.value
  354. }
  355. }).then(function (res) {
  356. if (res.data.code == 200) {
  357. that.datainfo.airportdDropOffDt=res.data.data.airportdDropOffDt;
  358. that.datainfo.airportdDropOffRemark=res.data.data.airportdDropOffRemark;
  359. that.datainfo.applyPassportDt=res.data.data.applyPassportDt;
  360. that.datainfo.applyPassportRemark=res.data.data.applyPassportRemark;
  361. that.datainfo.approvalDataDt=res.data.data.approvalDataDt;
  362. that.datainfo.approvalDataRemark=res.data.data.approvalDataRemark;
  363. that.datainfo.approvalDt=res.data.data.approvalDt;
  364. that.datainfo.approvalRemark=res.data.data.approvalRemark;
  365. that.datainfo.approvalType=res.data.data.approvalType+'';
  366. that.datainfo.diId=res.data.data.diId;
  367. that.datainfo.id=res.data.data.id;
  368. that.datainfo.isAirportdDropOff=res.data.data.isAirportdDropOff;
  369. that.datainfo.isApplyPassport=res.data.data.isApplyPassport;
  370. that.datainfo.isApproval=res.data.data.isApproval;
  371. that.datainfo.isApprovalData=res.data.data.isApprovalData;
  372. that.datainfo.isIssueApproval=res.data.data.isIssueApproval;
  373. that.datainfo.isIssueVisa=res.data.data.isIssueVisa;
  374. that.datainfo.isPreTripMeeting=res.data.data.isPreTripMeeting;
  375. that.datainfo.isQuery=res.data.data.isQuery;
  376. that.datainfo.isSendVisa=res.data.data.isSendVisa;
  377. that.datainfo.isVisaInformation=res.data.data.isVisaInformation;
  378. that.datainfo.issueApprovalDt=res.data.data.issueApprovalDt;
  379. that.datainfo.issueApprovalRemark=res.data.data.issueApprovalRemark;
  380. that.datainfo.issueVisaDt=res.data.data.issueVisaDt;
  381. that.datainfo.issueVisaRemark=res.data.data.issueVisaRemark;
  382. that.datainfo.airTicketDt=res.data.data.airTicketDt;
  383. that.datainfo.isAirTicket=res.data.data.isAirTicket;
  384. that.datainfo.airTicketRemark=res.data.data.airTicketRemark;
  385. that.datainfo.hotelDt=res.data.data.hotelDt;
  386. that.datainfo.isHotel=res.data.data.isHotel;
  387. that.datainfo.hotelRemark=res.data.data.hotelRemark;
  388. that.datainfo.isSelectedAirportd=res.data.data.isSelectedAirportd;
  389. that.datainfo.isSelectedApprovalData=res.data.data.isSelectedApprovalData;
  390. that.datainfo.isSelectedIssueApproval=res.data.data.isSelectedIssueApproval;
  391. that.datainfo.isSelectedVisaInfo=res.data.data.isSelectedVisaInfo;
  392. that.datainfo.isSelectedSendVisa=res.data.data.isSelectedSendVisa;
  393. that.datainfo.isSelectedIssueVisa=res.data.data.isSelectedIssueVisa;
  394. that.datainfo.isSelectedAirTicket=res.data.data.isSelectedAirTicket;
  395. that.datainfo.isSelectedHotel=res.data.data.isSelectedHotel;
  396. that.datainfo.isSelectedPreTripMeeting=res.data.data.isSelectedPreTripMeeting;
  397. that.datainfo.isSelectedAirportdDropOff=res.data.data.isSelectedAirportdDropOff;
  398. that.datainfo.preTripMeetingDt=res.data.data.preTripMeetingDt;
  399. that.datainfo.preTripMeetingRemark=res.data.data.preTripMeetingRemark
  400. that.datainfo.sendVisaDt=res.data.data.sendVisaDt;
  401. that.datainfo.sendVisaRemark=res.data.data.sendVisaRemark;
  402. that.datainfo.visaCountryData=res.data.data.visaCountryData;
  403. that.datainfo.visaInformationDt=res.data.data.visaInformationDt;
  404. that.datainfo.visaInformationRemark=res.data.data.visaInformationRemark;
  405. if(that.datainfo.isQuery==true){
  406. that.PostInvertedListCreate()
  407. // that.$notify({
  408. // title: '提示',
  409. // message: '暂无签证费用信息!',
  410. // duration: 0
  411. // });
  412. }
  413. }else{
  414. that.$message.error(res.data.msg);
  415. }
  416. }).catch(function (error) {
  417. that.$message.error(error);
  418. });
  419. },
  420. //数据初始化
  421. datacsh(){
  422. this.datainfo={
  423. airportdDropOffDt:'',//送机 - A
  424. airportdDropOffRemark:'',//送机 备注
  425. applyPassportDt:'',//办护照时间 - B
  426. applyPassportRemark:'',//办护照 备注
  427. approvalDataDt:'',//报批资料准备时间 - A
  428. approvalDataRemark:'',//报批资料准备 备注
  429. approvalDt:'',//报批时间 - A
  430. approvalRemark:'',//报批 备注
  431. approvalType:0,//报批时间 1 预批件 2 正常批件 默认值??-1
  432. diId:0,
  433. id:0,
  434. isAirportdDropOff:0,//送机 是否完成
  435. isApplyPassport:0,//办护照 是否完成
  436. isApproval:0,//报批 是否完成
  437. isApprovalData:0,//报批资料准备 是否完成
  438. isIssueApproval:0,//出批件 是否完成
  439. isIssueVisa:0,//出签 是否完成
  440. airTicketDt:'',//机票 - B
  441. isAirTicket:0,//机票 是否完成
  442. airTicketRemark:'',//机票 备注
  443. hotelDt:'',//酒店 - B
  444. isHotel:0,//酒店 是否完成
  445. hotelRemark:'',//酒店 备注
  446. isSelectedAirportd:0,//送机 是否选中
  447. isSelectedApprovalData:0,//报批/提供送签资料 是否选中
  448. isSelectedIssueApproval:0,//出批件 是否选中
  449. isSelectedVisaInfo:0,//签证资料准备 是否选中
  450. isSelectedSendVisa:0,//送签签证 是否选中
  451. isSelectedIssueVisa:0,//出签 是否选中
  452. isSelectedAirTicket:0,//机票 是否选中
  453. isSelectedHotel:0,//酒店 是否选中
  454. isSelectedPreTripMeeting:0,//行前会 是否选中
  455. isSelectedAirportdDropOff:0,//送机 是否选中
  456. isPreTripMeeting:0,//行前会 是否完成
  457. isQuery:false,//查询标识 true 需提醒客户该团未创建倒推表
  458. isSendVisa:0,//送签 是否完成
  459. isVisaInformation:0,//签证资料准备 是否完成
  460. issueApprovalDt:'',//出批件时间 - A
  461. issueApprovalRemark:'',//出批件时间 备注
  462. issueVisaDt:'',//出签时间 - B
  463. issueVisaRemark:'',//出签 备注
  464. preTripMeetingDt:'',//行前会 - A
  465. preTripMeetingRemark:'',//行前会 备注
  466. sendVisaDt:'',//送签时间 - B
  467. sendVisaRemark:'',//送签 备注
  468. visaCountryData:[],
  469. visaInformationDt:'',//签证资料准备时间
  470. visaInformationRemark:'',//签证资料准备 备注
  471. }
  472. },
  473. //获取团组info
  474. PostShareGroupInfo() {
  475. var url = "/api/Business/PostShareGroupInfo"
  476. var that = this
  477. this.$axios({
  478. method: 'post',
  479. url: url,
  480. headers: {
  481. Authorization: 'Bearer ' + this.token
  482. },
  483. data: {
  484. portType: 1,
  485. id: that.value,
  486. }
  487. }).then(function (res) {
  488. if (res.data.code == 200) {
  489. that.groupinfo=res.data.data;
  490. }else{
  491. that.$message.error(res.data.msg);
  492. }
  493. }).catch(function (error) {
  494. that.$message.error(error);
  495. });
  496. },
  497. //团组切换
  498. changegroup(){
  499. this.datacsh();
  500. this.PostShareGroupInfo();
  501. this.PostInvertedListInfo();
  502. },
  503. //生成会务倒推表
  504. InforRetrogressTableFileDownload() {
  505. var url = "/api/Groups/InforRetrogressTableFileDownload"
  506. var that = this
  507. this.$axios({
  508. method: 'post',
  509. url: url,
  510. headers: {
  511. Authorization: 'Bearer ' + this.token
  512. },
  513. data: {
  514. groupId:that.value,
  515. currUserId: that.userId
  516. }
  517. }).then(function (res) {
  518. if (res.data.code == 200) {
  519. that.$message({
  520. message:res.data.msg ,
  521. type: 'success',
  522. offset:50
  523. });
  524. window.open(res.data.data.url)
  525. }else{
  526. that.$message.error(res.data.msg);
  527. }
  528. }).catch(function (error) {
  529. that.$message.error(error);
  530. });
  531. },
  532. //生成倒推表
  533. PostInvertedListCreate() {
  534. var url = "/api/Groups/PostInvertedListCreate"
  535. var that = this
  536. this.$axios({
  537. method: 'post',
  538. url: url,
  539. headers: {
  540. Authorization: 'Bearer ' + this.token
  541. },
  542. data: {
  543. portType: 1,
  544. diId: that.value
  545. }
  546. }).then(function (res) {
  547. if (res.data.code == 200) {
  548. that.$message({
  549. message:res.data.msg ,
  550. type: 'success',
  551. offset:50
  552. });
  553. that.PostInvertedListInfo();
  554. }else{
  555. that.$message.error(res.data.msg);
  556. }
  557. }).catch(function (error) {
  558. that.$message.error(error);
  559. });
  560. },
  561. //保存
  562. PostInvertedListUpdate() {
  563. var that = this
  564. var url = "/api/Groups/PostInvertedListUpdate"
  565. this.$axios({
  566. method: 'post',
  567. url: url,
  568. headers: {
  569. Authorization: 'Bearer ' + this.token
  570. },
  571. data: {
  572. portType: 1,
  573. isQuery:that.datainfo.isQuery,
  574. id: that.datainfo.id,
  575. diId: that.datainfo.diId,
  576. approvalDataDt: that.datainfo.approvalDataDt,
  577. isApprovalData: that.datainfo.isApprovalData,
  578. approvalDataRemark: that.datainfo.approvalDataRemark,
  579. approvalDt: that.datainfo.approvalDt,
  580. approvalType: that.datainfo.approvalType,
  581. isApproval: that.datainfo.isApproval,
  582. approvalRemark: that.datainfo.approvalRemark,
  583. issueApprovalDt: that.datainfo.issueApprovalDt,
  584. isIssueApproval: that.datainfo.isIssueApproval,
  585. issueApprovalRemark: that.datainfo.issueApprovalRemark,
  586. applyPassportDt: that.datainfo.applyPassportDt,
  587. isApplyPassport: that.datainfo.isApplyPassport,
  588. applyPassportRemark: that.datainfo.applyPassportRemark,
  589. visaInformationDt: that.datainfo.visaInformationDt,
  590. isVisaInformation: that.datainfo.isVisaInformation,
  591. visaInformationRemark: that.datainfo.visaInformationRemark,
  592. visaCountryData: that.datainfo.visaCountryData,
  593. sendVisaDt: that.datainfo.sendVisaDt,
  594. isSendVisa: that.datainfo.isSendVisa,
  595. sendVisaRemark: that.datainfo.sendVisaRemark,
  596. issueVisaDt: that.datainfo.issueVisaDt,
  597. isIssueVisa: that.datainfo.isIssueVisa,
  598. issueVisaRemark: that.datainfo.issueVisaRemark,
  599. airTicketDt: that.datainfo.airTicketDt,
  600. isAirTicket: that.datainfo.isAirTicket,
  601. airTicketRemark: that.datainfo.airTicketRemark,
  602. hotelDt: that.datainfo.hotelDt,
  603. isHotel: that.datainfo.isHotel,
  604. hotelRemark: that.datainfo.hotelRemark,
  605. isSelectedAirportd: that.datainfo.isSelectedAirportd,
  606. isSelectedApprovalData: that.datainfo.isSelectedApprovalData,
  607. isSelectedIssueApproval: that.datainfo.isSelectedIssueApproval,
  608. isSelectedVisaInfo: that.datainfo.isSelectedVisaInfo,
  609. isSelectedSendVisa: that.datainfo.isSelectedSendVisa,
  610. isSelectedIssueVisa: that.datainfo.isSelectedIssueVisa,
  611. isSelectedAirTicket: that.datainfo.isSelectedAirTicket,
  612. isSelectedHotel: that.datainfo.isSelectedHotel,
  613. isSelectedPreTripMeeting: that.datainfo.isSelectedPreTripMeeting,
  614. isSelectedAirportdDropOff: that.datainfo.isSelectedAirportdDropOff,
  615. preTripMeetingDt: that.datainfo.preTripMeetingDt,
  616. isPreTripMeeting: that.datainfo.isPreTripMeeting,
  617. preTripMeetingRemark: that.datainfo.preTripMeetingRemark,
  618. airportdDropOffDt: that.datainfo.airportdDropOffDt,
  619. isAirportdDropOff: that.datainfo.isAirportdDropOff,
  620. airportdDropOffRemark: that.datainfo.airportdDropOffRemark,
  621. }
  622. }).then(function (res) {
  623. if (res.data.code == 200) {
  624. that.$message({
  625. message:res.data.msg ,
  626. type: 'success',
  627. offset:50
  628. });
  629. that.PostInvertedListInfo();
  630. }else{
  631. that.$message.error(res.data.msg);
  632. }
  633. }).catch(function (error) {
  634. that.$message.error(error);
  635. });
  636. },
  637. //导出倒推表
  638. PostInvertedListFileDownload() {
  639. var that = this
  640. var url = "/api/Groups/PostInvertedListUpdate"
  641. this.$axios({
  642. method: 'post',
  643. url: url,
  644. headers: {
  645. Authorization: 'Bearer ' + this.token
  646. },
  647. data: {
  648. portType: 1,
  649. isQuery:that.datainfo.isQuery,
  650. id: that.datainfo.id,
  651. diId: that.datainfo.diId,
  652. approvalDataDt: that.datainfo.approvalDataDt,
  653. isApprovalData: that.datainfo.isApprovalData,
  654. approvalDataRemark: that.datainfo.approvalDataRemark,
  655. approvalDt: that.datainfo.approvalDt,
  656. approvalType: that.datainfo.approvalType,
  657. isApproval: that.datainfo.isApproval,
  658. approvalRemark: that.datainfo.approvalRemark,
  659. issueApprovalDt: that.datainfo.issueApprovalDt,
  660. isIssueApproval: that.datainfo.isIssueApproval,
  661. issueApprovalRemark: that.datainfo.issueApprovalRemark,
  662. applyPassportDt: that.datainfo.applyPassportDt,
  663. isApplyPassport: that.datainfo.isApplyPassport,
  664. applyPassportRemark: that.datainfo.applyPassportRemark,
  665. visaInformationDt: that.datainfo.visaInformationDt,
  666. isVisaInformation: that.datainfo.isVisaInformation,
  667. visaInformationRemark: that.datainfo.visaInformationRemark,
  668. visaCountryData: that.datainfo.visaCountryData,
  669. sendVisaDt: that.datainfo.sendVisaDt,
  670. isSendVisa: that.datainfo.isSendVisa,
  671. sendVisaRemark: that.datainfo.sendVisaRemark,
  672. issueVisaDt: that.datainfo.issueVisaDt,
  673. isIssueVisa: that.datainfo.isIssueVisa,
  674. issueVisaRemark: that.datainfo.issueVisaRemark,
  675. airTicketDt: that.datainfo.airTicketDt,
  676. isAirTicket: that.datainfo.isAirTicket,
  677. airTicketRemark: that.datainfo.airTicketRemark,
  678. hotelDt: that.datainfo.hotelDt,
  679. isHotel: that.datainfo.isHotel,
  680. hotelRemark: that.datainfo.hotelRemark,
  681. isSelectedAirportd: that.datainfo.isSelectedAirportd,
  682. isSelectedApprovalData: that.datainfo.isSelectedApprovalData,
  683. isSelectedIssueApproval: that.datainfo.isSelectedIssueApproval,
  684. isSelectedVisaInfo: that.datainfo.isSelectedVisaInfo,
  685. isSelectedSendVisa: that.datainfo.isSelectedSendVisa,
  686. isSelectedIssueVisa: that.datainfo.isSelectedIssueVisa,
  687. isSelectedAirTicket: that.datainfo.isSelectedAirTicket,
  688. isSelectedHotel: that.datainfo.isSelectedHotel,
  689. isSelectedPreTripMeeting: that.datainfo.isSelectedPreTripMeeting,
  690. isSelectedAirportdDropOff: that.datainfo.isSelectedAirportdDropOff,
  691. preTripMeetingDt: that.datainfo.preTripMeetingDt,
  692. isPreTripMeeting: that.datainfo.isPreTripMeeting,
  693. preTripMeetingRemark: that.datainfo.preTripMeetingRemark,
  694. airportdDropOffDt: that.datainfo.airportdDropOffDt,
  695. isAirportdDropOff: that.datainfo.isAirportdDropOff,
  696. airportdDropOffRemark: that.datainfo.airportdDropOffRemark,
  697. }
  698. }).then(function (res) {
  699. if (res.data.code == 200) {
  700. that.$message({
  701. message:res.data.msg ,
  702. type: 'success',
  703. offset:50
  704. });
  705. that.PostInvertedListInfo();
  706. var urls = "/api/Groups/PostInvertedListFileDownload"
  707. that.$axios({
  708. method: 'post',
  709. url: urls,
  710. headers: {
  711. Authorization: 'Bearer ' + that.token
  712. },
  713. data: {
  714. portType: 1,
  715. diId: that.value
  716. }
  717. }).then(function (res) {
  718. if (res.data.code == 200) {
  719. that.$message({
  720. message:res.data.msg ,
  721. type: 'success',
  722. offset:50
  723. });
  724. window.open(res.data.data);
  725. }else{
  726. that.$message.error(res.data.msg);
  727. }
  728. }).catch(function (error) {
  729. that.$message.error(error);
  730. });
  731. }else{
  732. that.$message.error(res.data.msg);
  733. }
  734. }).catch(function (error) {
  735. that.$message.error(error);
  736. });
  737. },
  738. },
  739. filters: {
  740. capitalize: function (value) {
  741. value=value+'';
  742. return value.split(" ")[0]
  743. }
  744. },
  745. created(){
  746. this.GetGroupNameList()
  747. },
  748. mounted(){
  749. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  750. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  751. }
  752. }
  753. </script>
  754. <style>
  755. .backward-all{
  756. background-color: #fff;
  757. padding: 10px;
  758. box-shadow: 0 0 5px #0005;
  759. border-radius: 10px;
  760. height: 100%;
  761. min-height: 840px;
  762. min-width: 1550px;
  763. }
  764. .backward-head-li label{
  765. color: #606266;
  766. font-size: 15px;
  767. font-weight: 600;
  768. }
  769. .backward-head{
  770. display: flex;
  771. justify-content: space-between;
  772. }
  773. .backward-title{
  774. margin: 30px 0 ;
  775. text-align: center;
  776. }
  777. .backward-title-yi{
  778. color: #606266;
  779. font-size: 15px;
  780. font-weight: 600;
  781. margin-bottom: 20px;
  782. }
  783. .backward-title-er{
  784. color: #606266;
  785. font-size: 14px;
  786. font-weight: 600;
  787. }
  788. .backward-table-li{
  789. display: flex;
  790. border-top: 1px solid #ebeef5;
  791. }
  792. .backward-table-li:last-child{
  793. border-bottom: 1px solid #ebeef5;
  794. }
  795. .backward-li-span:nth-child(1){
  796. width: 3%;
  797. }
  798. .backward-li-span:nth-child(2){
  799. width: 15%;
  800. }
  801. .backward-li-span:nth-child(3){
  802. width: 20%;
  803. color: #606266;
  804. font-size: 14px;
  805. font-weight: 600;
  806. }
  807. .backward-li-span:nth-child(4){
  808. width: 62%;
  809. }
  810. .backward-li-span{
  811. border-left: 1px solid #ebeef5;
  812. padding: 10px;
  813. text-align: center;
  814. line-height: 54px;
  815. }
  816. .backward-li-span:last-child{
  817. border-right: 1px solid #ebeef5;
  818. }
  819. .backward-li-span .el-radio{
  820. font-size: 14px;
  821. margin-right: 6px;
  822. }
  823. .backward-li-span .el-radio__label{
  824. padding-left: 4px;
  825. }
  826. </style>