PickupList.vue 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401
  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 = that.cangweiType[0].id;
  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. console.log(tourClientList)
  1049. },
  1050. //多存api
  1051. PostTourClientListAddMultiple(listinif) {
  1052. var url = "/api/Groups/PostTourClientListAddMultiple"
  1053. var that = this
  1054. var data = {
  1055. portType: 1,
  1056. userId: that.userId,
  1057. pageId: that.pageId,
  1058. diId: that.diId,
  1059. tourClientListInfos: listinif
  1060. }
  1061. console.log(JSON.stringify(data))
  1062. this.$axios({
  1063. method: 'post',
  1064. url: url,
  1065. headers: {
  1066. Authorization: 'Bearer ' + this.token
  1067. },
  1068. data: {
  1069. portType: 1,
  1070. userId: that.userId,
  1071. pageId: that.pageId,
  1072. diId: that.diId,
  1073. tourClientListInfos: listinif
  1074. }
  1075. }).then(function (res) {
  1076. console.log(res)
  1077. if (res.data.code == 200) {
  1078. that.$message({
  1079. type: 'success',
  1080. message: res.data.msg,
  1081. duration: '3000'
  1082. });
  1083. that.PostTourClientListByDiId();
  1084. that.clearedlist();
  1085. that.dialogTableVisible = false;
  1086. } else {
  1087. that.$message.error(res.data.msg);
  1088. }
  1089. }).catch(function (error) {
  1090. that.$message.error("保存失败!");
  1091. });
  1092. },
  1093. //导出团组名单
  1094. Exportlist(val) {
  1095. var url = "/api/Groups/PostTourClientListDownloadFile"
  1096. var that = this
  1097. this.$axios({
  1098. method: 'post',
  1099. url: url,
  1100. headers: {
  1101. Authorization: 'Bearer ' + this.token
  1102. },
  1103. data: {
  1104. portType: 1,
  1105. userId: that.userId,
  1106. pageId: that.pageId,
  1107. diId: that.diId,
  1108. language: val
  1109. }
  1110. }).then(function (res) {
  1111. console.log(res)
  1112. if (res.data.code == 200) {
  1113. window.location.href = res.data.data
  1114. // that.$message({
  1115. // type: 'success',
  1116. // message: res.data.msg,
  1117. // duration:'3000'
  1118. // });
  1119. } else {
  1120. that.$message.error(res.data.msg);
  1121. }
  1122. }).catch(function (error) {
  1123. that.$message.error("下载失败!");
  1124. });
  1125. },
  1126. async httpRequest(file, fileList) {
  1127. this.upLoadFile = []
  1128. for (let i in fileList) {
  1129. this.upLoadFile[i] = await this.getBase64(fileList[i].raw)
  1130. }
  1131. console.log('上传文件列表', this.upLoadFile)
  1132. },
  1133. // 转base64码
  1134. getBase64(file) {
  1135. return new Promise((resolve, reject) => {
  1136. const reader = new FileReader()
  1137. let fileResult = ''
  1138. reader.readAsDataURL(file)
  1139. // 开始转
  1140. reader.onload = () => {
  1141. fileResult = reader.result
  1142. }
  1143. // 转 失败
  1144. reader.onerror = error => {
  1145. reject(error)
  1146. }
  1147. // 转 结束
  1148. reader.onloadend = () => {
  1149. resolve(fileResult)
  1150. }
  1151. })
  1152. },
  1153. submitUpload() {
  1154. console.log(this.upLoadFile)
  1155. if (this.upLoadFile.length == 0) {
  1156. this.$message.error("未选择图片!");
  1157. } else {
  1158. this.fullscreenLoading = true;
  1159. var url = "/api/BaiduOCR/ClientOCR"
  1160. var that = this
  1161. this.$axios({
  1162. method: 'post',
  1163. url: url,
  1164. headers: {
  1165. Authorization: 'Bearer ' + this.token
  1166. },
  1167. data: {
  1168. base64img: that.upLoadFile[0]
  1169. }
  1170. }).then(function (res) {
  1171. console.log(res)
  1172. if (res.data.code == 200) {
  1173. that.fullscreenLoading = false;
  1174. var dataarr = res.data.data;
  1175. var dataarrnew = [];
  1176. for (var i = 0; i < dataarr.length; i++) {
  1177. dataarrnew.push(
  1178. {
  1179. lastName: dataarr[i].lastName,
  1180. firstName: dataarr[i].firstName,
  1181. pinyin: '',
  1182. sex: dataarr[i].sex == 0 ? '男' : '女',
  1183. companyFullName: dataarr[i].companyFullName,
  1184. job: dataarr[i].job,
  1185. idCardNo: dataarr[i].iDcard,
  1186. phone: dataarr[i].phone,
  1187. birthDay: dataarr[i].birthday == '-' ? '' : dataarr[i].birthday,
  1188. shippingSpaceTypeId: dataarr[i].berth,
  1189. shippingSpaceSpecialNeeds: '',
  1190. hotelSpecialNeeds: '',
  1191. mealSpecialNeeds: '',
  1192. remark: '',
  1193. }
  1194. )
  1195. // that.tourClientListInfos[i]=dataarrnew[i]
  1196. }
  1197. that.tourClientListInfos = dataarrnew
  1198. var len = 10 - dataarrnew.length
  1199. for (var jk = 0; jk < len; jk++) {
  1200. that.tourClientListInfos.push(
  1201. {
  1202. lastName: '',
  1203. firstName: "",
  1204. pinyin: '',
  1205. sex: '男',
  1206. companyFullName: "",
  1207. job: "",
  1208. idCardNo: "",
  1209. phone: "",
  1210. birthDay: "",
  1211. shippingSpaceTypeId: 460,
  1212. shippingSpaceSpecialNeeds: '',
  1213. hotelSpecialNeeds: '',
  1214. mealSpecialNeeds: '',
  1215. remark: '',
  1216. }
  1217. )
  1218. }
  1219. console.log(that.tourClientListInfos)
  1220. that.$message({
  1221. type: 'success',
  1222. message: res.data.msg,
  1223. duration: '3000'
  1224. });
  1225. // setTimeout(function(){ that.dialogTableVisible=true; }, 3000); 
  1226. that.dialogTableVisible = true;
  1227. } else {
  1228. that.fullscreenLoading = false;
  1229. that.$message.error(res.data.msg);
  1230. }
  1231. }).catch(function (error) {
  1232. that.fullscreenLoading = false;
  1233. that.$message.error("导入失败!");
  1234. });
  1235. }
  1236. },
  1237. },
  1238. filters: {
  1239. filter_city(value) {
  1240. if (value) {
  1241. return value.replaceAll('|', '、')
  1242. }
  1243. },
  1244. filter_time(value) {
  1245. if (value) {
  1246. return value.split(" ")[0]
  1247. }
  1248. }
  1249. },
  1250. mounted() {
  1251. console.log(this.tourClientListInfos)
  1252. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  1253. this.pageId = Number(localStorage.getItem('indexs').split('-')[1]);//页面id
  1254. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  1255. this.GetGroupNameList();
  1256. this.PostTourClientListBasicDataInit()
  1257. }
  1258. }
  1259. </script>
  1260. <style>
  1261. .pickuplist-all {
  1262. background-color: #fff;
  1263. padding: 10px;
  1264. box-shadow: 0 0 5px #0005;
  1265. border-radius: 10px;
  1266. height: 100%;
  1267. min-height: 840px;
  1268. min-width: 900px;
  1269. }
  1270. .pickuplist-all .block {
  1271. margin-top: 10px;
  1272. }
  1273. .pickuplist-head-li label {
  1274. color: #606266;
  1275. font-size: 15px;
  1276. font-weight: 600;
  1277. }
  1278. .pickuplist-head {
  1279. display: flex;
  1280. justify-content: space-between;
  1281. }
  1282. .pickuplist-info {
  1283. display: flex;
  1284. margin-top: 10px;
  1285. }
  1286. .pickuplist-info .pickuplist-info-li:last-child {
  1287. margin-right: 0;
  1288. }
  1289. .pickuplist-info-li {
  1290. margin-right: 30px;
  1291. }
  1292. .pickuplist-info-li label {
  1293. color: #606266;
  1294. font-size: 15px;
  1295. font-weight: 600;
  1296. }
  1297. .pickuplist-info-li span {
  1298. color: #606266;
  1299. font-size: 14px;
  1300. }
  1301. .pickuplist-Upload-box {
  1302. margin-top: 10px;
  1303. display: flex;
  1304. align-items: baseline;
  1305. justify-content: flex-end;
  1306. }
  1307. .pickuplist-Upload-box .upload-demo {
  1308. display: flex;
  1309. align-items: center;
  1310. }
  1311. .pickuplist-Upload-box .el-upload__tip {
  1312. margin-top: 0px;
  1313. }
  1314. .pickuplist-Upload-box .el-upload-list__item:first-child {
  1315. margin-top: 0px;
  1316. }
  1317. .pickuplist-table {
  1318. margin-top: 20px;
  1319. }
  1320. .pickuplist-btn {
  1321. margin-top: 30px;
  1322. padding-bottom: 10px;
  1323. display: flex;
  1324. justify-content: space-between;
  1325. align-items: center;
  1326. border-bottom: 1px solid #C0C4CC;
  1327. }
  1328. .pickuplist-btn-lable {
  1329. color: #606266;
  1330. font-size: 15px;
  1331. font-weight: 600;
  1332. }
  1333. .pickuplist-all .pickuplist-form {
  1334. margin-top: 20px;
  1335. }
  1336. .pickuplist-all .el-autocomplete-suggestion {
  1337. width: auto !important;
  1338. }
  1339. .dutzl .el-input__inner {
  1340. padding: 0 5px;
  1341. }
  1342. .dutzl .el-date-editor .el-icon-date {
  1343. display: none;
  1344. }
  1345. .dialog-hade {
  1346. display: flex;
  1347. justify-content: space-between;
  1348. align-items: center;
  1349. margin-bottom: 10px;
  1350. }
  1351. .dialog-hade label {
  1352. color: red;
  1353. }
  1354. .dutzl .el-dialog__body {
  1355. padding-top: 0;
  1356. }
  1357. .dutzl .el-dialog__title {
  1358. font-size: 17px;
  1359. font-weight: 600;
  1360. }
  1361. .dutzl .el-input--prefix .el-input__inner {
  1362. padding-left: 5px;
  1363. padding-right: 5px
  1364. }
  1365. .dutzl .el-table td.el-table__cell div,
  1366. .el-table th.el-table__cell>.cell {
  1367. text-align: left;
  1368. }
  1369. </style>