PickupList.vue 55 KB

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