PickupList.vue 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466
  1. <template>
  2. <div v-loading.fullscreen.lock="fullscreenLoading">
  3. <div class="pickuplist-all">
  4. <div class="pickuplist-head">
  5. <div class="pickuplist-head-li">
  6. <label>团组名称:</label>
  7. <el-select style="width:220px" @change="delegationSelectChange" v-model="diId" clearable filterable
  8. placeholder="请选择">
  9. <el-option v-for="item in delegationInfoList" :key="item.id" :label="item.groupName"
  10. :value="item.id">
  11. </el-option>
  12. </el-select>
  13. </div>
  14. <div class="pickuplist-info">
  15. <div class="pickuplist-info-li">
  16. <label>团 号:</label>
  17. <span>{{ GroupInfo.tourCode }}</span>
  18. </div>
  19. <div class="pickuplist-info-li">
  20. <label>客 户:</label>
  21. <span>{{ GroupInfo.clientName }}</span>
  22. </div>
  23. <div class="pickuplist-info-li">
  24. <label>出访国家:</label>
  25. <span>{{ GroupInfo.visitCountry|filter_city }}</span>
  26. </div>
  27. <div class="pickuplist-info-li">
  28. <label>起止日期:</label>
  29. <span>{{ GroupInfo.visitStartDate|filter_time }}~{{ GroupInfo.visitEndDate|filter_time }}</span>
  30. </div>
  31. <div class="pickuplist-info-li">
  32. <label>天数/人数:</label>
  33. <span>{{ GroupInfo.visitDays }}/{{ GroupInfo.visitPNumber }}</span>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="pickuplist-Upload-box">
  38. <el-upload
  39. class="upload-demo"
  40. ref="upload"
  41. action=""
  42. :on-change="httpRequest"
  43. :on-remove="httpRequest"
  44. accept=".png, .jpg, .jpeg"
  45. :limit="1"
  46. :file-list="fileList"
  47. :auto-upload="false">
  48. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  49. <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">识别图片</el-button>
  50. <div slot="tip" class="el-upload__tip">只能识别jpg/png文件</div>
  51. </el-upload>
  52. </div>
  53. <div class="pickuplist-table">
  54. <el-table
  55. :data="tableData"
  56. border
  57. style="width: 100%">
  58. <el-table-column
  59. type="index"
  60. label="序号"
  61. width="55">
  62. </el-table-column>
  63. <el-table-column
  64. prop="lastName"
  65. label="姓"
  66. width="100">
  67. </el-table-column>
  68. <el-table-column
  69. prop="firstName"
  70. label="名"
  71. width="100">
  72. </el-table-column>
  73. <el-table-column
  74. prop="companyFullName"
  75. label="单位">
  76. </el-table-column>
  77. <el-table-column
  78. prop="job"
  79. label="职务">
  80. </el-table-column>
  81. <el-table-column
  82. prop="idCardNo"
  83. label="身份证"
  84. width="180">
  85. </el-table-column>
  86. <el-table-column
  87. prop="sex"
  88. label="性别"
  89. width="55">
  90. <template slot-scope="scope">
  91. {{ scope.row.sex==0?'男':'女' }}
  92. </template>
  93. </el-table-column>
  94. <el-table-column
  95. label="操作"
  96. width="100">
  97. <template slot-scope="scope">
  98. <el-button
  99. @click.native.prevent="PostTourClientListDetails(scope.$index, scope.row)"
  100. type="text"
  101. size="small">
  102. 详细
  103. </el-button>
  104. <el-button
  105. @click.native.prevent="PostTourClientListDel(scope.$index, scope.row)"
  106. type="text"
  107. size="small">
  108. 删除
  109. </el-button>
  110. </template>
  111. </el-table-column>
  112. </el-table>
  113. </div>
  114. <div class="pickuplist-btn">
  115. <div class="pickuplist-btn-lable">
  116. 详 情
  117. </div>
  118. <div>
  119. <el-button slot="trigger" @click="Exportlist" type="primary">导出团组名单</el-button>
  120. <el-button type="primary" @click="dialogTableVisible = true">添加多个资料</el-button>
  121. <el-button type="primary" @click="addhandoff">新增切换</el-button>
  122. <el-button type="primary" @click="preservation('pickupinif')">保存设置</el-button>
  123. </div>
  124. </div>
  125. <el-form
  126. :model="pickupinif"
  127. :rules="pickupinifRules"
  128. ref="pickupinif"
  129. label-width="110px"
  130. class="demo-OpHotelReservationsData pickuplist-form">
  131. <div style="display: flex;flex-wrap: wrap;justify-content: space-between;">
  132. <div style="width:395px ;display: flex;">
  133. <el-form-item style="width:50% ;" label="姓" prop="surname">
  134. <el-autocomplete
  135. popper-class="el-autocomplete-suggestion"
  136. :popper-append-to-body="false"
  137. class="inline-input"
  138. size="medium"
  139. v-model.trim="pickupinif.surname"
  140. :fetch-suggestions="querySearch"
  141. @select="PromptChecked"
  142. @input="InputValue"
  143. ></el-autocomplete>
  144. </el-form-item>
  145. <el-form-item label-width="50px" style="width:50% ;" label="名" prop="name">
  146. <el-input @input="InputValue" size="medium" type="text"
  147. v-model.trim="pickupinif.name"></el-input>
  148. </el-form-item>
  149. </div>
  150. <el-form-item style="width:395px ;" label="拼音" prop="Pinyin">
  151. <el-input size="medium" type="text"
  152. v-model.trim="pickupinif.Pinyin"></el-input>
  153. </el-form-item>
  154. <el-form-item style="width:395px ;" label="单位" prop="flats">
  155. <el-autocomplete
  156. style="width:100% ;"
  157. popper-class="el-autocomplete-suggestion"
  158. :popper-append-to-body="false"
  159. class="inline-input"
  160. size="medium"
  161. v-model.trim="pickupinif.flats"
  162. :fetch-suggestions="querySearchdw"
  163. ></el-autocomplete>
  164. </el-form-item>
  165. <el-form-item style="width:395px ;" label="职务" prop="office">
  166. <el-input size="medium" type="text"
  167. v-model.trim="pickupinif.office"></el-input>
  168. </el-form-item>
  169. <el-form-item style="width:395px ;" label="手机号" prop="phone">
  170. <el-input size="medium" type="text"
  171. v-model.trim="pickupinif.phone"></el-input>
  172. </el-form-item>
  173. <el-form-item style="width:395px ;" label="性别" prop="gender">
  174. <el-radio-group v-model="pickupinif.gender">
  175. <el-radio label="男"></el-radio>
  176. <el-radio label="女"></el-radio>
  177. </el-radio-group>
  178. </el-form-item>
  179. <el-form-item style="width:395px ;" label="身份证" prop="identity">
  180. <el-input size="medium" type="text"
  181. v-model.trim="pickupinif.identity"></el-input>
  182. </el-form-item>
  183. <el-form-item style="width:395px ;" label="出生日期" prop="birth">
  184. <el-date-picker
  185. size="medium"
  186. type="date"
  187. placeholder="选择出生日期"
  188. v-model.trim="pickupinif.birth"
  189. style="width: 100%;">
  190. </el-date-picker>
  191. </el-form-item>
  192. <el-form-item style="width:395px ;" label="舱位类型" prop="Accommodation">
  193. <el-select style="width:100%" v-model="pickupinif.Accommodation" clearable filterable
  194. placeholder="请选择">
  195. <el-option v-for="item in cangweiType" :key="item.id" :label="item.name"
  196. :value="item.id">
  197. </el-option>
  198. </el-select>
  199. </el-form-item>
  200. </div>
  201. <el-form-item label="舱位备注">
  202. <el-input :rows="2" type="textarea" v-model="pickupinif.ClassRemarks"></el-input>
  203. </el-form-item>
  204. <el-form-item label="房间备注">
  205. <el-input :rows="2" type="textarea" v-model="pickupinif.Roomtype"></el-input>
  206. </el-form-item>
  207. <el-form-item label="餐食备注">
  208. <el-input :rows="2" type="textarea" v-model="pickupinif.Mealnotes"></el-input>
  209. </el-form-item>
  210. <el-form-item label="备注">
  211. <el-input :rows="2" type="textarea" v-model="pickupinif.remark"></el-input>
  212. </el-form-item>
  213. </el-form>
  214. <el-dialog class="dutzl" width="1242px" title="添加多条资料" :visible.sync="dialogTableVisible" :before-close="closeExpertFormDialog">
  215. <div class="dialog-hade">
  216. <label>PS:自动填写补全功能可能有误差请仔细核实,补全或修改(没有可用‘-’或‘暂无’代替)</label>
  217. <el-button @click="manysave" size="mini" type="primary">保 存</el-button>
  218. </div>
  219. <el-table :border="true" :data="tourClientListInfos">
  220. <el-table-column type="index" label="序号" width="50"></el-table-column>
  221. <el-table-column property="date" label="姓" width="100">
  222. <template slot-scope="scope">
  223. <el-autocomplete
  224. popper-class="el-autocomplete-suggestion"
  225. :popper-append-to-body="false"
  226. class="inline-input"
  227. size="mini"
  228. v-model.trim="scope.row.lastName"
  229. :fetch-suggestions="querySearch"
  230. @select="DTPromptChecked(scope.row)"
  231. ></el-autocomplete>
  232. </template>
  233. </el-table-column>
  234. <el-table-column label="名" width="100">
  235. <template slot-scope="scope">
  236. <el-input
  237. size="mini"
  238. type="text"
  239. v-model.trim="scope.row.firstName">
  240. </el-input>
  241. </template>
  242. </el-table-column>
  243. <el-table-column label="单位" width="150">
  244. <template slot-scope="scope">
  245. <el-autocomplete
  246. style="width:100% ;"
  247. popper-class="el-autocomplete-suggestion"
  248. :popper-append-to-body="false"
  249. class="inline-input"
  250. size="mini"
  251. v-model.trim="scope.row.companyFullName"
  252. :fetch-suggestions="querySearchdw"
  253. ></el-autocomplete>
  254. </template>
  255. </el-table-column>
  256. <el-table-column label="职务" width="150">
  257. <template slot-scope="scope">
  258. <el-input
  259. size="mini"
  260. type="text"
  261. v-model.trim="scope.row.job">
  262. </el-input>
  263. </template>
  264. </el-table-column>
  265. <el-table-column label="身份证" width="170">
  266. <template slot-scope="scope">
  267. <el-input
  268. size="mini"
  269. type="text"
  270. v-model.trim="scope.row.idCardNo">
  271. </el-input>
  272. </template>
  273. </el-table-column>
  274. <el-table-column label="手机号码" width="115">
  275. <template slot-scope="scope">
  276. <el-input
  277. size="mini"
  278. type="text"
  279. v-model.trim="scope.row.phone">
  280. </el-input>
  281. </template>
  282. </el-table-column>
  283. <el-table-column label="性别" width="150">
  284. <template slot-scope="scope">
  285. <el-radio-group size="mini" v-model="scope.row.sex">
  286. <el-radio label="男"></el-radio>
  287. <el-radio label="女"></el-radio>
  288. </el-radio-group>
  289. </template>
  290. </el-table-column>
  291. <el-table-column label="出生日期" width="100">
  292. <template slot-scope="scope">
  293. <el-date-picker
  294. :clearable="false"
  295. size="mini"
  296. type="date"
  297. placeholder="出生日期"
  298. v-model.trim="scope.row.birthDay"
  299. style="width: 100%;">
  300. </el-date-picker>
  301. </template>
  302. </el-table-column>
  303. <el-table-column label="舱位类型" width="115">
  304. <template slot-scope="scope">
  305. <el-select size="mini" style="width:100%" v-model="scope.row.shippingSpaceTypeId" clearable filterable
  306. placeholder="请选择">
  307. <el-option v-for="item in cangweiType" :key="item.id" :label="item.name"
  308. :value="item.id">
  309. </el-option>
  310. </el-select>
  311. </template>
  312. </el-table-column>
  313. </el-table>
  314. </el-dialog>
  315. </div>
  316. </div>
  317. </template>
  318. <script>
  319. import { pinyin } from 'pinyin-pro';
  320. import { cl, el } from '@fullcalendar/core/internal-common';
  321. export default {
  322. data () {
  323. return {
  324. dialogTableVisible: false,
  325. tourClientListInfos:[
  326. {
  327. lastName: "",
  328. firstName: "",
  329. pinyin:'',
  330. sex: '男',
  331. companyFullName: "",
  332. job: "",
  333. idCardNo: "",
  334. phone: "",
  335. birthDay: "",
  336. shippingSpaceTypeId: 460,
  337. shippingSpaceSpecialNeeds:'',
  338. hotelSpecialNeeds:'',
  339. mealSpecialNeeds:'',
  340. remark:'',
  341. },
  342. {
  343. lastName: "",
  344. firstName: "",
  345. pinyin:'',
  346. sex: '男',
  347. companyFullName: "",
  348. job: "",
  349. idCardNo: "",
  350. phone: "",
  351. birthDay: "",
  352. shippingSpaceTypeId: 460,
  353. shippingSpaceSpecialNeeds:'',
  354. hotelSpecialNeeds:'',
  355. mealSpecialNeeds:'',
  356. remark:'',
  357. },
  358. {
  359. lastName: "",
  360. firstName: "",
  361. pinyin:'',
  362. sex:'男',
  363. companyFullName: "",
  364. job: "",
  365. idCardNo: "",
  366. phone: "",
  367. birthDay: "",
  368. shippingSpaceTypeId: 460,
  369. shippingSpaceSpecialNeeds:'',
  370. hotelSpecialNeeds:'',
  371. mealSpecialNeeds:'',
  372. remark:'',
  373. },
  374. {
  375. lastName: "",
  376. firstName: "",
  377. pinyin:'',
  378. sex: '男',
  379. companyFullName: "",
  380. job: "",
  381. idCardNo: "",
  382. phone: "",
  383. birthDay: "",
  384. shippingSpaceTypeId: 460,
  385. shippingSpaceSpecialNeeds:'',
  386. hotelSpecialNeeds:'',
  387. mealSpecialNeeds:'',
  388. remark:'',
  389. },
  390. {
  391. lastName: "",
  392. firstName: "",
  393. pinyin:'',
  394. sex: '男',
  395. companyFullName: "",
  396. job: "",
  397. idCardNo: "",
  398. phone: "",
  399. birthDay: "",
  400. shippingSpaceTypeId: 460,
  401. shippingSpaceSpecialNeeds:'',
  402. hotelSpecialNeeds:'',
  403. mealSpecialNeeds:'',
  404. remark:'',
  405. },
  406. {
  407. lastName: "",
  408. firstName: "",
  409. pinyin:'',
  410. sex: '男',
  411. companyFullName: "",
  412. job: "",
  413. idCardNo: "",
  414. phone: "",
  415. birthDay: "",
  416. shippingSpaceTypeId: 460,
  417. shippingSpaceSpecialNeeds:'',
  418. hotelSpecialNeeds:'',
  419. mealSpecialNeeds:'',
  420. remark:'',
  421. },
  422. {
  423. lastName: "",
  424. firstName: "",
  425. pinyin:'',
  426. sex: '男',
  427. companyFullName: "",
  428. job: "",
  429. idCardNo: "",
  430. phone: "",
  431. birthDay: "",
  432. shippingSpaceTypeId: 460,
  433. shippingSpaceSpecialNeeds:'',
  434. hotelSpecialNeeds:'',
  435. mealSpecialNeeds:'',
  436. remark:'',
  437. },
  438. {
  439. lastName: "",
  440. firstName: "",
  441. pinyin:'',
  442. sex: '男',
  443. companyFullName: "",
  444. job: "",
  445. idCardNo: "",
  446. phone: "",
  447. birthDay: "",
  448. shippingSpaceTypeId: 460,
  449. shippingSpaceSpecialNeeds:'',
  450. hotelSpecialNeeds:'',
  451. mealSpecialNeeds:'',
  452. remark:'',
  453. },
  454. {
  455. lastName: "",
  456. firstName: "",
  457. pinyin:'',
  458. sex: '男',
  459. companyFullName: "",
  460. job: "",
  461. idCardNo: "",
  462. phone: "",
  463. birthDay: "",
  464. shippingSpaceTypeId: 460,
  465. shippingSpaceSpecialNeeds:'',
  466. hotelSpecialNeeds:'',
  467. mealSpecialNeeds:'',
  468. remark:'',
  469. },
  470. {
  471. lastName: "",
  472. firstName: "",
  473. pinyin:'',
  474. sex: '男',
  475. companyFullName: "",
  476. job: "",
  477. idCardNo: "",
  478. phone: "",
  479. birthDay: "",
  480. shippingSpaceTypeId: 460,
  481. shippingSpaceSpecialNeeds:'',
  482. hotelSpecialNeeds:'',
  483. mealSpecialNeeds:'',
  484. remark:'',
  485. },
  486. ],
  487. token:'',
  488. pageId:'',
  489. userId:'',
  490. diId:'',
  491. delegationInfoList:[],
  492. tableData: [],
  493. GroupInfo:{},
  494. cangweiType: [],//舱位类型
  495. restaurants:[],//姓数组
  496. restaurantss:[],
  497. units:[],
  498. unit:[],//danwei数组
  499. id:0,
  500. //必填参数
  501. pickupinif:{
  502. surname:'',//姓
  503. name:'',//名
  504. Pinyin:'',//拼音
  505. flats:'',//单位
  506. office:'',//职务
  507. phone:'',//手机号
  508. gender:'男',//性别
  509. identity:'',//身份证
  510. birth:'',//出生日期
  511. Accommodation:'',//舱位类型
  512. ClassRemarks:'',//舱位备注
  513. Roomtype:'',//房间类型
  514. Mealnotes:'',//餐食备注
  515. remark:'',//备注
  516. },
  517. pickupinifRules:{
  518. surname: [
  519. { required: true, message: '请输入姓', trigger: ['blur', 'change'] }
  520. ],
  521. name: [
  522. { required: true, message: '请输入名', trigger: ['blur', 'change'] }
  523. ],
  524. Pinyin: [
  525. { required: true, message: '请输入拼音', trigger: ['blur', 'change'] }
  526. ],
  527. flats: [
  528. { required: true, message: '请选择单位', trigger: ['blur', 'change'] }
  529. ],
  530. office: [
  531. { required: true, message: '请输入职务', trigger: ['blur', 'change'] }
  532. ],
  533. phone: [
  534. { required: true, message: '请输入手机号', trigger: ['blur', 'change'] }
  535. ],
  536. gender: [
  537. { required: true, message: '请选择性别', trigger: ['blur', 'change'] }
  538. ],
  539. identity: [
  540. { required: true, message: '请输入身份证', trigger: ['blur', 'change'] }
  541. ],
  542. birth: [
  543. { required: true, message: '请选择出生日期', trigger: ['blur', 'change'] }
  544. ],
  545. Accommodation: [
  546. { required: true, message: '请选择舱位类型', trigger: ['blur', 'change'] }
  547. ],
  548. },
  549. fileList: [],
  550. upLoadFile: [],
  551. fullscreenLoading:false,
  552. timeStamp:''
  553. }
  554. },
  555. methods:{
  556. //姓提示
  557. querySearch(queryString, cb) {
  558. var restaurants = this.restaurants;
  559. var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
  560. // 调用 callback 返回建议列表的数据
  561. cb(results);
  562. },
  563. //danwei提示
  564. querySearchdw(queryString, cb) {
  565. var unit = this.unit;
  566. var results = queryString ? unit.filter(this.createFilter(queryString)) : unit;
  567. // 调用 callback 返回建议列表的数据
  568. cb(results);
  569. },
  570. createFilter(queryString) {
  571. return (restaurant) => {
  572. return restaurant.value.replace(" ", "").toLowerCase().match(queryString.toLowerCase());
  573. };
  574. },
  575. delegationSelectChange(){
  576. this.PostShareGroupInfo()
  577. this.addhandoff()
  578. },
  579. //清空
  580. clearedlist(){
  581. this.tourClientListInfos=[
  582. {
  583. lastName: "",
  584. firstName: "",
  585. pinyin:'',
  586. sex: '男',
  587. companyFullName: "",
  588. job: "",
  589. idCardNo: "",
  590. phone: "",
  591. birthDay: "",
  592. shippingSpaceTypeId: 460,
  593. shippingSpaceSpecialNeeds:'',
  594. hotelSpecialNeeds:'',
  595. mealSpecialNeeds:'',
  596. remark:'',
  597. },
  598. {
  599. lastName: "",
  600. firstName: "",
  601. pinyin:'',
  602. sex: '男',
  603. companyFullName: "",
  604. job: "",
  605. idCardNo: "",
  606. phone: "",
  607. birthDay: "",
  608. shippingSpaceTypeId: 460,
  609. shippingSpaceSpecialNeeds:'',
  610. hotelSpecialNeeds:'',
  611. mealSpecialNeeds:'',
  612. remark:'',
  613. },
  614. {
  615. lastName: "",
  616. firstName: "",
  617. pinyin:'',
  618. sex:'男',
  619. companyFullName: "",
  620. job: "",
  621. idCardNo: "",
  622. phone: "",
  623. birthDay: "",
  624. shippingSpaceTypeId: 460,
  625. shippingSpaceSpecialNeeds:'',
  626. hotelSpecialNeeds:'',
  627. mealSpecialNeeds:'',
  628. remark:'',
  629. },
  630. {
  631. lastName: "",
  632. firstName: "",
  633. pinyin:'',
  634. sex: '男',
  635. companyFullName: "",
  636. job: "",
  637. idCardNo: "",
  638. phone: "",
  639. birthDay: "",
  640. shippingSpaceTypeId: 460,
  641. shippingSpaceSpecialNeeds:'',
  642. hotelSpecialNeeds:'',
  643. mealSpecialNeeds:'',
  644. remark:'',
  645. },
  646. {
  647. lastName: "",
  648. firstName: "",
  649. pinyin:'',
  650. sex: '男',
  651. companyFullName: "",
  652. job: "",
  653. idCardNo: "",
  654. phone: "",
  655. birthDay: "",
  656. shippingSpaceTypeId: 460,
  657. shippingSpaceSpecialNeeds:'',
  658. hotelSpecialNeeds:'',
  659. mealSpecialNeeds:'',
  660. remark:'',
  661. },
  662. {
  663. lastName: "",
  664. firstName: "",
  665. pinyin:'',
  666. sex: '男',
  667. companyFullName: "",
  668. job: "",
  669. idCardNo: "",
  670. phone: "",
  671. birthDay: "",
  672. shippingSpaceTypeId: 460,
  673. shippingSpaceSpecialNeeds:'',
  674. hotelSpecialNeeds:'',
  675. mealSpecialNeeds:'',
  676. remark:'',
  677. },
  678. {
  679. lastName: "",
  680. firstName: "",
  681. pinyin:'',
  682. sex: '男',
  683. companyFullName: "",
  684. job: "",
  685. idCardNo: "",
  686. phone: "",
  687. birthDay: "",
  688. shippingSpaceTypeId: 460,
  689. shippingSpaceSpecialNeeds:'',
  690. hotelSpecialNeeds:'',
  691. mealSpecialNeeds:'',
  692. remark:'',
  693. },
  694. {
  695. lastName: "",
  696. firstName: "",
  697. pinyin:'',
  698. sex: '男',
  699. companyFullName: "",
  700. job: "",
  701. idCardNo: "",
  702. phone: "",
  703. birthDay: "",
  704. shippingSpaceTypeId: 460,
  705. shippingSpaceSpecialNeeds:'',
  706. hotelSpecialNeeds:'',
  707. mealSpecialNeeds:'',
  708. remark:'',
  709. },
  710. {
  711. lastName: "",
  712. firstName: "",
  713. pinyin:'',
  714. sex: '男',
  715. companyFullName: "",
  716. job: "",
  717. idCardNo: "",
  718. phone: "",
  719. birthDay: "",
  720. shippingSpaceTypeId: 460,
  721. shippingSpaceSpecialNeeds:'',
  722. hotelSpecialNeeds:'',
  723. mealSpecialNeeds:'',
  724. remark:'',
  725. },
  726. {
  727. lastName: "",
  728. firstName: "",
  729. pinyin:'',
  730. sex: '男',
  731. companyFullName: "",
  732. job: "",
  733. idCardNo: "",
  734. phone: "",
  735. birthDay: "",
  736. shippingSpaceTypeId: 460,
  737. shippingSpaceSpecialNeeds:'',
  738. hotelSpecialNeeds:'',
  739. mealSpecialNeeds:'',
  740. remark:'',
  741. },
  742. ]
  743. },
  744. //获取团组
  745. GetGroupNameList() {
  746. var url = "/api/Business/GetGroupNameList"
  747. var that = this
  748. this.$axios({
  749. method: 'post',
  750. url: url,
  751. headers: {
  752. Authorization: 'Bearer ' + this.token
  753. },
  754. data: {
  755. portType: 1
  756. }
  757. }).then(function (res) {
  758. console.log(res)
  759. if (res.data.code == 200) {
  760. that.delegationInfoList=res.data.data;
  761. that.diId=that.delegationInfoList[0].id;
  762. that.PostShareGroupInfo();
  763. }
  764. }).catch(function (error) {
  765. that.$message.error("获取团组失败");
  766. });
  767. },
  768. //获取团组详情
  769. PostShareGroupInfo() {
  770. var url = "/api/Business/PostShareGroupInfo"
  771. var that = this
  772. this.$axios({
  773. method: 'post',
  774. url: url,
  775. headers: {
  776. Authorization: 'Bearer ' + this.token
  777. },
  778. data: {
  779. portType: 1,
  780. id:that.diId
  781. }
  782. }).then(function (res) {
  783. console.log(res)
  784. if (res.data.code == 200) {
  785. that.GroupInfo=res.data.data
  786. that.PostTourClientListByDiId()
  787. }else{
  788. that.$message.error(res.data.msg);
  789. }
  790. }).catch(function (error) {
  791. that.$message.error("获取团组详情失败!");
  792. });
  793. },
  794. //获取客户table
  795. PostTourClientListByDiId() {
  796. var url = "/api/Groups/PostTourClientListByDiId"
  797. var that = this
  798. this.$axios({
  799. method: 'post',
  800. url: url,
  801. headers: {
  802. Authorization: 'Bearer ' + this.token
  803. },
  804. data: {
  805. portType: 1,
  806. userId:that.userId,
  807. pageId:that.pageId,
  808. diId:that.diId,
  809. }
  810. }).then(function (res) {
  811. console.log(res)
  812. if (res.data.code == 200) {
  813. that.tableData=res.data.data;
  814. }else{
  815. that.$message.error(res.data.msg);
  816. }
  817. }).catch(function (error) {
  818. that.$message.error("获取接团名单失败!");
  819. });
  820. },
  821. //获取基础数据
  822. PostTourClientListBasicDataInit() {
  823. this.fullscreenLoading=true;
  824. var url = "/api/Groups/PostTourClientListBasicDataInit"
  825. var that = this
  826. this.$axios({
  827. method: 'post',
  828. url: url,
  829. headers: {
  830. Authorization: 'Bearer ' + this.token
  831. },
  832. data: {
  833. portType: 1,
  834. userId:that.userId,
  835. pageId: that.pageId,
  836. }
  837. }).then(function (res) {
  838. console.log(res)
  839. if (res.data.code == 200) {
  840. that.restaurantss=res.data.data.clientData;
  841. that.cangweiType=res.data.data.shippingSpaceTypeData;
  842. that.pickupinif.Accommodation=that.cangweiType[0].id;
  843. that.units=res.data.data.clientCompanyData;
  844. that.restaurants= that.restaurantss.map((terminal) => {
  845. return {
  846. value: terminal.lastName +' '+ terminal.firstName +' '+terminal.pinyin+' '+terminal.companyFullName+' '+terminal.job+' '+terminal.phone+' '+(terminal.sex==0?'男':'女')+' '+terminal.idCardNo+' '+(terminal.birthDay).split(' ')[0],
  847. };
  848. });
  849. that.unit= that.units.map((terminal) => {
  850. return {
  851. value: terminal.companyFullName,
  852. };
  853. });
  854. that.fullscreenLoading=false;
  855. }
  856. }).catch(function (error) {
  857. that.fullscreenLoading=false;
  858. that.$message.error("获取基础数据失败!");
  859. });
  860. },
  861. //提示选中
  862. PromptChecked(){
  863. console.log(this.pickupinif.surname.split(' '))
  864. var inif=this.pickupinif.surname.split(' ');
  865. this.pickupinif.surname=inif[0];
  866. this.pickupinif.name=inif[1];
  867. this.pickupinif.Pinyin=inif[2];
  868. if(this.pickupinif.Pinyin==''){
  869. let surname='';
  870. let surname1=pinyin(this.pickupinif.surname, {toneType: 'none'}).toUpperCase();
  871. let surname2=pinyin(this.pickupinif.name, {toneType: 'none'}).toUpperCase();
  872. surname=surname1+'/'+surname2;
  873. this.pickupinif.Pinyin=surname;
  874. console.log(surname)
  875. }
  876. this.pickupinif.flats=inif[3];
  877. this.pickupinif.office=inif[4];
  878. this.pickupinif.phone=inif[5];
  879. this.pickupinif.gender=inif[6];
  880. this.pickupinif.identity=inif[7];
  881. this.pickupinif.birth=inif[8];
  882. },
  883. //添加多条提示选中
  884. DTPromptChecked(val){
  885. console.log(val)
  886. var inif=val.lastName.split(' ');
  887. console.log(inif)
  888. val.lastName=inif[0]?inif[0]:''
  889. val.firstName=inif[1]?inif[1]:''
  890. val.companyFullName=inif[3]?inif[3]:''
  891. val.job=inif[4]?inif[4]:''
  892. val.idCardNo=inif[7]?inif[7]:''
  893. val.phone=inif[5]?inif[5]:''
  894. val.sex=inif[6]?inif[6]:''
  895. val.birthDay=inif[8]?inif[8]:''
  896. },
  897. //姓值改变
  898. ChangesValue(){
  899. console.log(this.pickupinif.surname)
  900. this.pickupinif.name='';
  901. this.pickupinif.Pinyin='';
  902. this.pickupinif.flats='';
  903. this.pickupinif.office='';
  904. this.pickupinif.phone='';
  905. this.pickupinif.gender='';
  906. this.pickupinif.identity='';
  907. this.pickupinif.birth='';
  908. if (this.$refs.pickupinif){
  909. this.$nextTick(() => {
  910. this.$refs['pickupinif'].clearValidate();
  911. })
  912. }
  913. },
  914. //转换日期
  915. transferdate(val){
  916. var today = new Date(val);
  917. var DD = String(today.getDate()).padStart(2, '0'); // 获取日
  918. var MM = String(today.getMonth() + 1).padStart(2, '0'); //获取月份,1 月为 0
  919. var yyyy = today.getFullYear(); // 获取年
  920. return yyyy+'-'+MM+'-'+DD
  921. },
  922. //输入
  923. InputValue(){
  924. let surname='';
  925. let surname1=pinyin(this.pickupinif.surname, {toneType: 'none'}).toUpperCase();
  926. let surname2=pinyin(this.pickupinif.name, {toneType: 'none'}).toUpperCase();
  927. surname=surname1+'/'+surname2;
  928. this.pickupinif.Pinyin=surname;
  929. console.log(surname)
  930. },
  931. //查询详情
  932. PostTourClientListDetails(index,row) {
  933. this.id=row.id;
  934. var url = "/api/Groups/PostTourClientListDetails"
  935. var that = this
  936. this.$axios({
  937. method: 'post',
  938. url: url,
  939. headers: {
  940. Authorization: 'Bearer ' + this.token
  941. },
  942. data: {
  943. portType: 1,
  944. userId:that.userId,
  945. pageId:that.pageId,
  946. id:row.id,
  947. }
  948. }).then(function (res) {
  949. console.log(res)
  950. if (res.data.code == 200) {
  951. that.pickupinif={
  952. surname:res.data.data.lastName,//姓
  953. name:res.data.data.firstName,//名
  954. flats:res.data.data.companyFullName,//单位
  955. office:res.data.data.job,//职务
  956. phone:res.data.data.phone,//手机号
  957. gender:res.data.data.sex==0?'男':'女',//性别
  958. identity:res.data.data.idCardNo,//身份证
  959. birth:res.data.data.birthDay,//出生日期
  960. Accommodation:res.data.data.shippingSpaceTypeId,//舱位类型
  961. ClassRemarks:res.data.data.shippingSpaceSpecialNeeds,//舱位备注
  962. Roomtype:res.data.data.hotelSpecialNeeds,//房间类型
  963. Mealnotes:res.data.data.mealSpecialNeeds,//餐食备注
  964. remark:res.data.data.remark,//备注
  965. };
  966. that.pickupinif.Pinyin=res.data.data.pinyin;//拼音
  967. if(that.pickupinif.Pinyin==''){
  968. let surname='';
  969. let surname1=pinyin(that.pickupinif.surname, {toneType: 'none'}).toUpperCase();
  970. let surname2=pinyin(that.pickupinif.name, {toneType: 'none'}).toUpperCase();
  971. surname=surname1+'/'+surname2;
  972. that.pickupinif.Pinyin=surname;
  973. }
  974. }else{
  975. that.$message.error(res.data.msg);
  976. }
  977. }).catch(function (error) {
  978. that.$message.error("查询详情失败!");
  979. });
  980. },
  981. //保存
  982. preservation(formName){
  983. this.$refs[formName].validate((valid) => {
  984. if (valid) {
  985. this.PostTourClientListAddOrEdit()
  986. } else {
  987. console.log('error submit!!');
  988. return false;
  989. }
  990. });
  991. },
  992. //保存修改api
  993. PostTourClientListAddOrEdit() {
  994. this.fullscreenLoading=true;
  995. var url = "/api/Groups/PostTourClientListAddOrEdit"
  996. var that = this
  997. this.$axios({
  998. method: 'post',
  999. url: url,
  1000. headers: {
  1001. Authorization: 'Bearer ' + this.token
  1002. },
  1003. data: {
  1004. portType: 1,
  1005. userId:that.userId,
  1006. pageId:that.pageId,
  1007. diId:that.diId,
  1008. id:that.id,
  1009. lastName:that.pickupinif.surname,//姓
  1010. firstName:that.pickupinif.name,//名
  1011. pinyin:that.pickupinif.Pinyin,//姓名拼音
  1012. sex:that.pickupinif.gender=='男'?0:1,//性别 0 男1 女 其他值 未设置
  1013. phone:that.pickupinif.phone,//手机号
  1014. companyFullName:that.pickupinif.flats,//公司名全称
  1015. job:that.pickupinif.office,//职位
  1016. idCardNo:that.pickupinif.identity,//身份证No
  1017. // tel:'',//...
  1018. birthDay:that.pickupinif.birth,//生日
  1019. shippingSpaceTypeId:that.pickupinif.Accommodation,//舱位类型(数据类型表Id)
  1020. shippingSpaceSpecialNeeds:that.pickupinif.ClassRemarks,//舱位特殊需求
  1021. hotelSpecialNeeds:that.pickupinif.Roomtype,//酒店特殊需求
  1022. mealSpecialNeeds:that.pickupinif.Mealnotes,//餐食特殊需求
  1023. remark:that.pickupinif.remark,//备注
  1024. }
  1025. }).then(function (res) {
  1026. console.log(res)
  1027. if (res.data.code == 200) {
  1028. that.$message({
  1029. type: 'success',
  1030. message: res.data.msg,
  1031. duration:'3000'
  1032. });
  1033. that.PostTourClientListByDiId();
  1034. setTimeout(() => {
  1035. that.addhandoff();
  1036. that.loading=false;
  1037. }, 500);
  1038. that.fullscreenLoading=false;
  1039. }else{
  1040. that.$message.error(res.data.msg);
  1041. that.fullscreenLoading=false;
  1042. }
  1043. }).catch(function (error) {
  1044. that.fullscreenLoading=false;
  1045. that.$message.error("保存或修改失败!");
  1046. });
  1047. },
  1048. //新增切换
  1049. addhandoff(){
  1050. this.id=0;
  1051. this.pickupinif={
  1052. surname:'',//姓
  1053. name:'',//名
  1054. Pinyin:'',//拼音
  1055. flats:'',//单位
  1056. office:'',//职务
  1057. phone:'',//手机号
  1058. gender:'男',//性别
  1059. identity:'',//身份证
  1060. birth:'',//出生日期
  1061. Accommodation:'',//舱位类型
  1062. ClassRemarks:'',//舱位备注
  1063. Roomtype:'',//房间类型
  1064. Mealnotes:'',//餐食备注
  1065. remark:'',//备注
  1066. };
  1067. if (this.$refs.pickupinif){
  1068. this.$nextTick(() => {
  1069. this.$refs['pickupinif'].clearValidate();
  1070. })
  1071. }
  1072. this.PostTourClientListBasicDataInit()
  1073. },
  1074. //清空表单
  1075. closeExpertFormDialog(done){
  1076. this.clearedlist()
  1077. done();//done 用于关闭 Dialog
  1078. },
  1079. //删除
  1080. PostTourClientListDel(index,row) {
  1081. this.$confirm('此操作将删除此条数据,是否确认', '提示', {
  1082. confirmButtonText: '确定',
  1083. cancelButtonText: '取消',
  1084. type: 'warning'
  1085. }).then(() => {
  1086. var url = "/api/Groups/PostTourClientListDel"
  1087. var that = this
  1088. this.$axios({
  1089. method: 'post',
  1090. url: url,
  1091. headers: {
  1092. Authorization: 'Bearer ' + this.token
  1093. },
  1094. data: {
  1095. portType: 1,
  1096. userId:that.userId,
  1097. pageId:that.pageId,
  1098. id:row.id,
  1099. }
  1100. }).then(function (res) {
  1101. console.log(res)
  1102. if (res.data.code == 200) {
  1103. that.$message({
  1104. type: 'success',
  1105. message: res.data.msg,
  1106. duration:'3000'
  1107. });
  1108. that.PostTourClientListByDiId();
  1109. }else{
  1110. that.$message.error(res.data.msg);
  1111. }
  1112. }).catch(function (error) {
  1113. that.$message.error("删除失败!");
  1114. });
  1115. }).catch(() => {
  1116. });
  1117. },
  1118. //多条保存
  1119. manysave(){
  1120. var tourClientList=[];
  1121. console.log(this.tourClientListInfos)
  1122. for(var i=0;i<this.tourClientListInfos.length;i++){
  1123. if(this.tourClientListInfos[i].lastName!=""&&this.tourClientListInfos[i].firstName!=""){
  1124. tourClientList.push(this.tourClientListInfos[i])
  1125. }
  1126. }
  1127. tourClientList=JSON.parse(JSON.stringify(tourClientList))
  1128. for(var x=0;x<tourClientList.length;x++){
  1129. tourClientList[x].sex=tourClientList[x].sex=='男'?0:1
  1130. }
  1131. if(tourClientList){
  1132. this.PostTourClientListAddMultiple(tourClientList)
  1133. }
  1134. console.log(tourClientList)
  1135. },
  1136. //多存api
  1137. PostTourClientListAddMultiple(listinif) {
  1138. var url = "/api/Groups/PostTourClientListAddMultiple"
  1139. var that = this
  1140. var data= {
  1141. portType: 1,
  1142. userId:that.userId,
  1143. pageId:that.pageId,
  1144. diId:that.diId,
  1145. tourClientListInfos:listinif
  1146. }
  1147. console.log(JSON.stringify(data))
  1148. this.$axios({
  1149. method: 'post',
  1150. url: url,
  1151. headers: {
  1152. Authorization: 'Bearer ' + this.token
  1153. },
  1154. data: {
  1155. portType: 1,
  1156. userId:that.userId,
  1157. pageId:that.pageId,
  1158. diId:that.diId,
  1159. tourClientListInfos:listinif
  1160. }
  1161. }).then(function (res) {
  1162. console.log(res)
  1163. if (res.data.code == 200) {
  1164. that.$message({
  1165. type: 'success',
  1166. message: res.data.msg,
  1167. duration:'3000'
  1168. });
  1169. that.PostTourClientListByDiId();
  1170. that.clearedlist();
  1171. that.dialogTableVisible=false;
  1172. }else{
  1173. that.$message.error(res.data.msg);
  1174. }
  1175. }).catch(function (error) {
  1176. that.$message.error("保存失败!");
  1177. });
  1178. },
  1179. //导出团组名单
  1180. Exportlist(){
  1181. var url = "/api/Groups/PostTourClientListDownloadFile"
  1182. var that = this
  1183. this.$axios({
  1184. method: 'post',
  1185. url: url,
  1186. headers: {
  1187. Authorization: 'Bearer ' + this.token
  1188. },
  1189. data: {
  1190. portType: 1,
  1191. userId:that.userId,
  1192. pageId:that.pageId,
  1193. diId:that.diId,
  1194. }
  1195. }).then(function (res) {
  1196. console.log(res)
  1197. if (res.data.code == 200) {
  1198. window.location.href = res.data.data
  1199. // that.$message({
  1200. // type: 'success',
  1201. // message: res.data.msg,
  1202. // duration:'3000'
  1203. // });
  1204. }else{
  1205. that.$message.error(res.data.msg);
  1206. }
  1207. }).catch(function (error) {
  1208. that.$message.error("下载失败!");
  1209. });
  1210. },
  1211. async httpRequest(file, fileList) {
  1212. this.upLoadFile = []
  1213. for (let i in fileList) {
  1214. this.upLoadFile[i] = await this.getBase64(fileList[i].raw)
  1215. }
  1216. console.log('上传文件列表', this.upLoadFile)
  1217. },
  1218. // 转base64码
  1219. getBase64(file) {
  1220. return new Promise((resolve, reject) => {
  1221. const reader = new FileReader()
  1222. let fileResult = ''
  1223. reader.readAsDataURL(file)
  1224. // 开始转
  1225. reader.onload = () => {
  1226. fileResult = reader.result
  1227. }
  1228. // 转 失败
  1229. reader.onerror = error => {
  1230. reject(error)
  1231. }
  1232. // 转 结束
  1233. reader.onloadend = () => {
  1234. resolve(fileResult)
  1235. }
  1236. })
  1237. },
  1238. submitUpload() {
  1239. console.log(this.upLoadFile)
  1240. if(this.upLoadFile.length==0){
  1241. this.$message.error("未选择图片!");
  1242. }else{
  1243. this.fullscreenLoading=true;
  1244. var url = "/api/BaiduOCR/ClientOCR"
  1245. var that = this
  1246. this.$axios({
  1247. method: 'post',
  1248. url: url,
  1249. headers: {
  1250. Authorization: 'Bearer ' + this.token
  1251. },
  1252. data: {
  1253. base64img:that.upLoadFile[0]
  1254. }
  1255. }).then(function (res) {
  1256. console.log(res)
  1257. if (res.data.code == 200) {
  1258. that.fullscreenLoading=false;
  1259. var dataarr=res.data.data;
  1260. var dataarrnew=[];
  1261. for(var i=0;i<dataarr.length;i++){
  1262. dataarrnew.push(
  1263. {
  1264. lastName:dataarr[i].lastName,
  1265. firstName:dataarr[i].firstName,
  1266. pinyin:'',
  1267. sex:dataarr[i].sex,
  1268. companyFullName:dataarr[i].companyFullName,
  1269. job:dataarr[i].job,
  1270. idCardNo:dataarr[i].iDcard,
  1271. phone:dataarr[i].phone,
  1272. birthDay:dataarr[i].birthday=='-'?'':dataarr[i].birthday,
  1273. shippingSpaceTypeId:dataarr[i].berth,
  1274. shippingSpaceSpecialNeeds:'',
  1275. hotelSpecialNeeds:'',
  1276. mealSpecialNeeds:'',
  1277. remark:'',
  1278. }
  1279. )
  1280. // that.tourClientListInfos[i]=dataarrnew[i]
  1281. }
  1282. that.tourClientListInfos=dataarrnew
  1283. console.log(10-dataarrnew.length)
  1284. var len = 10 - dataarrnew.length
  1285. console.log(len)
  1286. for(var jk=0;jk<len;jk++){
  1287. that.tourClientListInfos.push(
  1288. {
  1289. lastName: '',
  1290. firstName: "",
  1291. pinyin:'',
  1292. sex: '男',
  1293. companyFullName: "",
  1294. job: "",
  1295. idCardNo: "",
  1296. phone: "",
  1297. birthDay: "",
  1298. shippingSpaceTypeId: 460,
  1299. shippingSpaceSpecialNeeds:'',
  1300. hotelSpecialNeeds:'',
  1301. mealSpecialNeeds:'',
  1302. remark:'',
  1303. }
  1304. )
  1305. }
  1306. that.$message({
  1307. type: 'success',
  1308. message: res.data.msg,
  1309. duration:'3000'
  1310. });
  1311. // setTimeout(function(){ that.dialogTableVisible=true; }, 3000); 
  1312. that.dialogTableVisible=true;
  1313. }else{
  1314. that.fullscreenLoading=false;
  1315. that.$message.error(res.data.msg);
  1316. }
  1317. }).catch(function (error) {
  1318. that.fullscreenLoading=false;
  1319. that.$message.error("导入失败!");
  1320. });
  1321. }
  1322. },
  1323. },
  1324. filters:{
  1325. filter_city(value){
  1326. if(value){
  1327. return value.replaceAll('|','、')
  1328. }
  1329. },
  1330. filter_time(value){
  1331. if(value){
  1332. return value.split(" ")[0]
  1333. }
  1334. }
  1335. },
  1336. mounted(){
  1337. console.log(this.tourClientListInfos)
  1338. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  1339. this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
  1340. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  1341. this.GetGroupNameList();
  1342. this.PostTourClientListBasicDataInit()
  1343. }
  1344. }
  1345. </script>
  1346. <style>
  1347. .pickuplist-all {
  1348. background-color: #fff;
  1349. padding: 10px;
  1350. box-shadow: 0 0 5px #0005;
  1351. border-radius: 10px;
  1352. height: 100%;
  1353. min-height: 840px;
  1354. min-width: 900px;
  1355. }
  1356. .pickuplist-all .block {
  1357. margin-top: 10px;
  1358. }
  1359. .pickuplist-head-li label {
  1360. color: #606266;
  1361. font-size: 15px;
  1362. font-weight: 600;
  1363. }
  1364. .pickuplist-head {
  1365. display: flex;
  1366. justify-content: space-between;
  1367. }
  1368. .pickuplist-info {
  1369. display: flex;
  1370. margin-top: 10px;
  1371. }
  1372. .pickuplist-info .pickuplist-info-li:last-child{
  1373. margin-right: 0;
  1374. }
  1375. .pickuplist-info-li {
  1376. margin-right: 30px;
  1377. }
  1378. .pickuplist-info-li label {
  1379. color: #606266;
  1380. font-size: 15px;
  1381. font-weight: 600;
  1382. }
  1383. .pickuplist-info-li span {
  1384. color: #606266;
  1385. font-size: 14px;
  1386. }
  1387. .pickuplist-Upload-box{
  1388. margin-top: 10px;
  1389. display: flex;
  1390. align-items: baseline;
  1391. justify-content: end;
  1392. }
  1393. .pickuplist-Upload-box .upload-demo{
  1394. display: flex;
  1395. align-items: center;
  1396. }
  1397. .pickuplist-Upload-box .el-upload__tip{
  1398. margin-top: 0px;
  1399. }
  1400. .pickuplist-Upload-box .el-upload-list__item:first-child{
  1401. margin-top: 0px;
  1402. }
  1403. .pickuplist-table{
  1404. margin-top: 20px;
  1405. }
  1406. .pickuplist-btn{
  1407. margin-top: 30px;
  1408. padding-bottom: 10px;
  1409. display: flex;
  1410. justify-content: space-between;
  1411. align-items: center;
  1412. border-bottom: 1px solid #C0C4CC;
  1413. }
  1414. .pickuplist-btn-lable{
  1415. color: #606266;
  1416. font-size: 15px;
  1417. font-weight: 600;
  1418. }
  1419. .pickuplist-all .pickuplist-form{
  1420. margin-top: 20px;
  1421. }
  1422. .pickuplist-all .el-autocomplete-suggestion {
  1423. width: auto!important;
  1424. }
  1425. .dutzl .el-input__inner{
  1426. padding: 0 5px;
  1427. }
  1428. .dutzl .el-date-editor .el-icon-date {
  1429. display: none;
  1430. }
  1431. .dialog-hade{
  1432. display: flex;
  1433. justify-content:space-between ;
  1434. align-items: center;
  1435. margin-bottom: 10px;
  1436. }
  1437. .dialog-hade label{
  1438. color: red;
  1439. }
  1440. .dutzl .el-dialog__body{
  1441. padding-top: 0;
  1442. }
  1443. .dutzl .el-dialog__title{
  1444. font-size: 17px;
  1445. font-weight: 600;
  1446. }
  1447. .dutzl .el-input--prefix .el-input__inner{
  1448. padding-left: 5px;
  1449. padding-right: 5px
  1450. }
  1451. .dutzl .el-table td.el-table__cell div, .el-table th.el-table__cell>.cell{
  1452. text-align: left;
  1453. }
  1454. </style>