index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773
  1. <template>
  2. <div class="app-container">
  3. <el-menu
  4. :default-active="activeIndex"
  5. class="el-menu-demo"
  6. mode="horizontal"
  7. @select="handleSelect"
  8. text-color="#000"
  9. active-text-color="#ffd04b">
  10. <el-menu-item index="0">全部</el-menu-item>
  11. <el-menu-item index="1">待审核</el-menu-item>
  12. <el-menu-item index="2">订舱审核通过</el-menu-item>
  13. <el-menu-item index="3">待配船</el-menu-item>
  14. <el-menu-item index="4">配船审核通过</el-menu-item>
  15. <el-menu-item index="5">已撤销</el-menu-item>
  16. <el-menu-item index="6">已驳回</el-menu-item>
  17. <el-menu-item index="7">运单变更</el-menu-item>
  18. </el-menu>
  19. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" style="margin-top:20px">
  20. <el-row>
  21. <el-col :span="6">
  22. <el-form-item label="订舱号" prop="fBillno">
  23. <el-input size="small" width="240px" clearable v-model="queryParams.fBillno"/>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="6">
  27. <el-form-item label="运输条款" prop="fServiceitems">
  28. <el-select size="small" width="240px" clearable v-model="queryParams.fServiceitems">
  29. <el-option
  30. v-for="item in serviceitems"
  31. :key="item.dictValue"
  32. :label="item.dictLabel"
  33. :value="item.dictValue"/>
  34. </el-select>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="6">
  38. <el-form-item label="提单号" prop="fMblno">
  39. <el-input size="small" width="240px" clearable v-model="queryParams.fMblno"></el-input>
  40. </el-form-item>
  41. </el-col>
  42. <el-col :span="6">
  43. <el-form-item label="箱型" prop="fCntrid">
  44. <el-select size="small" v-model="queryParams.fCntrid" clearable :remote-method="cntrRemoteMethod">
  45. <el-option
  46. v-for="(dict, index) in container"
  47. :key="dict.fId"
  48. :label="dict.fNo"
  49. :value="dict.fId"
  50. ></el-option>
  51. </el-select>
  52. </el-form-item>
  53. </el-col>
  54. </el-row>
  55. <el-collapse-transition>
  56. <div v-show="show">
  57. <el-row>
  58. <el-col :span="6">
  59. <el-form-item label="箱量" prop="fCntrcount">
  60. <el-input size="small" width="240px" clearable v-model="queryParams.fCntrcount"/>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="6">
  64. <el-form-item label="收货人" prop="fConsigneername">
  65. <el-input size="small" width="240px" clearable v-model="queryParams.fConsigneername"/>
  66. </el-form-item>
  67. </el-col>
  68. <el-col :span="6">
  69. <el-form-item label="船名" prop="fVslid">
  70. <el-select
  71. size="small"
  72. width="240px"
  73. v-model="queryParams.fVslid"
  74. >
  75. <el-option
  76. v-for="item in vesselOptions"
  77. :key="item.fId"
  78. :label="item.fName"
  79. :value="item.fId"
  80. />
  81. </el-select>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="6">
  85. <el-form-item label="航次" prop="fVoyid">
  86. <el-select
  87. v-model="queryParams.fVoyid"
  88. filterable
  89. remote
  90. size="small"
  91. style="width: 200px"
  92. >
  93. <el-option
  94. v-for="item in voyageOptions"
  95. :key="item.fId"
  96. :label="item.fNo"
  97. :value="item.fId"/>
  98. </el-select>
  99. </el-form-item>
  100. </el-col>
  101. </el-row>
  102. <el-row>
  103. <el-col :span="6">
  104. <el-form-item label="装货时间" prop="cLoadDate">
  105. <el-date-picker
  106. v-model="queryParams.cLoadDate"
  107. type="daterange"
  108. range-separator="至"
  109. style="width: 240px"
  110. value-format="yyyy-MM-dd"
  111. start-placeholder="开始日期"
  112. end-placeholder="结束日期">
  113. </el-date-picker>
  114. </el-form-item>
  115. </el-col>
  116. </el-row>
  117. </div>
  118. </el-collapse-transition>
  119. </el-form>
  120. <el-row :gutter="10" class="mb8">
  121. <div style="float: left">
  122. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  123. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  124. <el-button v-show="show" @click="show = !show" icon="el-icon-arrow-up" size="mini">展开</el-button>
  125. <el-button v-show="!show" @click="show = !show" icon="el-icon-arrow-down" size="mini">展开</el-button>
  126. </div>
  127. <div class="tabSetting">
  128. <right-toolbar
  129. :showSearch.sync="showSearch"
  130. @queryTable="getList"
  131. ></right-toolbar>
  132. <div style="margin: 0 12px">
  133. <el-button
  134. icon="el-icon-setting"
  135. size="mini"
  136. circle
  137. @click="showSetting = !showSetting"
  138. ></el-button>
  139. </div>
  140. </div>
  141. </el-row>
  142. <el-dialog title="提示" :visible.sync="showSetting" width="700px" v-dialogDrag>
  143. <template slot="title">
  144. <div class="avue-crud__dialog__header">
  145. <span class="el-dialog__title">
  146. <span style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
  147. </span>
  148. </div>
  149. </template>
  150. <div>配置排序列数据(拖动调整顺序)</div>
  151. <div style="margin-left: 17px">
  152. <el-checkbox
  153. v-model="allCheck"
  154. label="全选"
  155. @change="allChecked"
  156. ></el-checkbox>
  157. </div>
  158. <div style="padding: 4px; display: flex; justify-content: center">
  159. <draggable
  160. v-model="setRowList"
  161. group="site"
  162. animation="300"
  163. @start="onStart"
  164. @end="onEnd"
  165. handle=".indraggable"
  166. >
  167. <transition-group>
  168. <div
  169. v-for="item in setRowList"
  170. :key="item.surface"
  171. class="listStyle"
  172. >
  173. <div style="width: 500px" class="indraggable">
  174. <div class="progress" :style="{ width: item.width + 'px' }">
  175. <el-checkbox
  176. :label="item.name"
  177. v-model="item.checked"
  178. :true-label="0"
  179. :false-label="1"
  180. >{{ item.name }}
  181. </el-checkbox>
  182. </div>
  183. </div>
  184. <el-input-number
  185. v-model.number="item.width"
  186. controls-position="right"
  187. :min="1"
  188. :max="500"
  189. size="mini"
  190. ></el-input-number>
  191. </div>
  192. </transition-group>
  193. </draggable>
  194. </div>
  195. <span slot="footer" class="dialog-footer">
  196. <el-button @click="showSetting = false">取 消</el-button>
  197. <el-button @click="delRow" type="danger">重 置</el-button>
  198. <el-button type="primary" @click="save()">确 定</el-button>
  199. </span>
  200. </el-dialog>
  201. <el-table v-loading="loading" :data="corpsList" @selection-change="handleSelectionChange">
  202. <el-table-column type="selection" width="55" align="center" />
  203. <el-table-column label="行号" align="center" type="index" fixed/>
  204. <el-table-column
  205. v-for="(item, index) in getRowList"
  206. :key="index"
  207. :label="item.name"
  208. :width="item.width"
  209. :prop="item.label"
  210. align="center"
  211. :fixed="item.fixed"
  212. :show-overflow-tooltip="true"
  213. sortable
  214. >
  215. <template slot-scope="scope">
  216. <span v-if="item.label == 'fBillno'">{{scope.row.fBillno}}</span>
  217. <span v-if="item.label == 'fServiceitems'">{{scope.row.fServiceitems}}</span>
  218. <span v-if="item.label == 'fConsigneername'">{{scope.row.fConsigneername}}</span>
  219. <span v-if="item.label == 'fName'">{{scope.row.fName}}</span>
  220. <span v-if="item.label == 'fNo'">{{scope.row.fNo}}</span>
  221. <span v-if="item.label == 'fCntrcount'">{{scope.row.fCntrcount}}</span>
  222. <span v-if="item.label == 'fBsdate'">{{scope.row.fBsdate}}</span>
  223. <span v-if="item.label == 'fBillstatus'">{{scope.row.fBillstatus}}</span>
  224. <span v-if="item.label == 'vslName'">{{scope.row.vslName}}</span>
  225. <span v-if="item.label == 'voyNo'">{{scope.row.voyNo}}</span>
  226. <span v-if="item.label == 'fMblno'">{{scope.row.fMblno}}</span>
  227. <span v-if="item.label == 'corpName'">{{scope.row.corpName}}</span>
  228. <span v-if="item.label == 'goodsName'">{{scope.row.goodsName}}</span>
  229. <span v-if="item.label == 'createBy'">{{scope.row.createBy}}</span>
  230. <span v-if="item.label == 'createTime'">{{ (scope.row.createTime).slice(0,10) }}</span>
  231. <span v-if="item.label == 'loadportName'">{{scope.row.loadportName}}</span>
  232. <span v-if="item.label == 'moneyStatus'">{{scope.row.moneyStatus}}</span>
  233. </template>
  234. </el-table-column>
  235. <!-- <el-table-column label="订舱号" align="center" prop="fBillno"/>-->
  236. <!-- <el-table-column label="运输条款" align="center" prop="fServiceitems" />-->
  237. <!-- <el-table-column label="收货人" align="center" prop="fConsigneername"/>-->
  238. <!-- <el-table-column label="航线" align="center" prop="fName"/>-->
  239. <!-- <el-table-column label="箱型" align="center" prop="fNo"/>-->
  240. <!-- <el-table-column label="箱量" align="center" prop="fCntrcount"/>-->
  241. <!-- <el-table-column label="装货时间" align="center" prop="fBsdate"/>-->
  242. <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" min-width="160px">
  243. <template slot-scope="scope">
  244. <el-button
  245. size="mini"
  246. type="text"
  247. icon="el-icon-edit"
  248. @click="handleUpdate(scope.row,1)"
  249. v-hasPermi="['warehouse:warehousebills:webVersionOrderDetails']"
  250. >查看</el-button>
  251. <!-- <el-button-->
  252. <!-- size="mini"-->
  253. <!-- type="text"-->
  254. <!-- icon="el-icon-delete"-->
  255. <!-- @click="handleDelete(scope.row)"-->
  256. <!-- >移除</el-button>-->
  257. </template>
  258. </el-table-column>
  259. <!-- <el-table-column-->
  260. <!-- class-name="small-padding fixed-width"-->
  261. <!-- v-for="(item,index) in boxDistributionName"-->
  262. <!-- :key="item.index"-->
  263. <!-- :label="item"-->
  264. <!-- :value="item.index"-->
  265. <!-- :prop="item"-->
  266. <!-- >-->
  267. <!-- </el-table-column>-->
  268. </el-table>
  269. <pagination
  270. v-show="total>0"
  271. :total="total"
  272. :page.sync="queryParams.pageNum"
  273. :limit.sync="queryParams.pageSize"
  274. @pagination="getList"
  275. />
  276. </div>
  277. </template>
  278. <script>
  279. import { listCorps, getcntrName, delCorps, changeCorpsStatus,exportCorps } from "@/api/kaihe/domesticTrade/myOrder";
  280. import Cookies from 'js-cookie'
  281. import { addSet, resetModule, select } from '@/api/system/set'
  282. import Vue from 'vue'
  283. import draggable from "vuedraggable";
  284. import { getVesselName } from '@/api/finance/applyForInvoice/chargeInvoice'
  285. import { getVoyageName } from '@/api/finance/applyForInvoice/feeDetail'
  286. Vue.directive('dialogDrag', {
  287. bind(el, binding, vnode, oldVnode) {
  288. const dialogHeaderEl = el.querySelector('.el-dialog__header')
  289. const dragDom = el.querySelector('.el-dialog')
  290. const enlarge = el.querySelector('.enlarge')
  291. dialogHeaderEl.style.cursor = 'move'
  292. // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
  293. const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
  294. if(enlarge){
  295. enlarge.onclick = (e) => {
  296. dragDom.style.top = '0px'
  297. dragDom.style.left = '0px'
  298. }
  299. }
  300. dialogHeaderEl.onmousedown = (e) => {
  301. // 鼠标按下,计算当前元素距离可视区的距离
  302. const disX = e.clientX - dialogHeaderEl.offsetLeft
  303. const disY = e.clientY - dialogHeaderEl.offsetTop
  304. // 获取到的值带px 正则匹配替换
  305. let styL, styT
  306. // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
  307. if (sty.left.includes('%')) {
  308. styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
  309. styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
  310. } else {
  311. styL = +sty.left.replace(/\px/g, '')
  312. styT = +sty.top.replace(/\px/g, '')
  313. }
  314. document.onmousemove = function(e) {
  315. // 通过事件委托,计算移动的距离
  316. const l = e.clientX - disX
  317. const t = e.clientY - disY
  318. // 移动当前元素
  319. if ((t + styT) >= 0){
  320. dragDom.style.top = `${t + styT}px`
  321. }
  322. dragDom.style.left = `${l + styL}px`
  323. // 将此时的位置传出去
  324. // binding.value({x:e.pageX,y:e.pageY})
  325. }
  326. document.onmouseup = function(e) {
  327. document.onmousemove = null
  328. document.onmouseup = null
  329. }
  330. }
  331. }
  332. })
  333. export default {
  334. name: "myOrder",
  335. components: {
  336. draggable,
  337. },
  338. data() {
  339. return {
  340. voyageOptions:[],
  341. vesselOptions:[],
  342. show: false,
  343. activeIndex: '0',
  344. setRowList: [],
  345. getRowList: [],
  346. tableDate: [
  347. {
  348. surface: "1",
  349. label: "fBillno",
  350. name: "订舱号",
  351. fixed:"left",
  352. checked: 0,
  353. width: 120,
  354. },
  355. {
  356. surface: "2",
  357. label: "fServiceitems",
  358. name: "运输条款",
  359. fixed:"left",
  360. checked: 0,
  361. width: 120,
  362. },
  363. {
  364. surface: "3",
  365. label: "fConsigneername",
  366. name: "收货人",
  367. fixed:"left",
  368. checked: 0,
  369. width: 120,
  370. },
  371. {
  372. surface: "4",
  373. label: "fName",
  374. name: "航线",
  375. fixed:"left",
  376. checked: 0,
  377. width: 120,
  378. },
  379. {
  380. surface: "5",
  381. label: "fNo",
  382. name: "箱型",
  383. fixed:"left",
  384. checked: 0,
  385. width: 120,
  386. },
  387. {
  388. surface: "6",
  389. label: "fCntrcount",
  390. name: "箱量",
  391. fixed:"left",
  392. checked: 0,
  393. width: 120,
  394. },
  395. {
  396. surface: "7",
  397. label: "fBsdate",
  398. name: "装货时间",
  399. checked: 0,
  400. width: 120,
  401. },
  402. {
  403. surface: "8",
  404. label: "fBillstatus",
  405. name: "状态",
  406. checked: 0,
  407. width: 120,
  408. },
  409. {
  410. surface: "9",
  411. label: "vslName",
  412. name: "船名",
  413. checked: 0,
  414. width: 120,
  415. },
  416. {
  417. surface: "10",
  418. label: "voyNo",
  419. name: "航次",
  420. checked: 0,
  421. width: 120,
  422. },
  423. {
  424. surface: "11",
  425. label: "fMblno",
  426. name: "提单号",
  427. checked: 0,
  428. width: 120,
  429. },
  430. {
  431. surface: "12",
  432. label: "corpName",
  433. name: "订舱单位",
  434. checked: 0,
  435. width: 120,
  436. },
  437. {
  438. surface: "13",
  439. label: "goodsName",
  440. name: "货名",
  441. checked: 0,
  442. width: 120,
  443. },
  444. {
  445. surface: "14",
  446. label: "createBy",
  447. name: "订舱人",
  448. checked: 0,
  449. width: 120,
  450. },
  451. {
  452. surface: "15",
  453. label: "createTime",
  454. name: "订舱时间",
  455. checked: 0,
  456. width: 120,
  457. },
  458. {
  459. surface: "16",
  460. label: "loadportName",
  461. name: "起运港",
  462. checked: 0,
  463. width: 120,
  464. },
  465. {
  466. surface: "17",
  467. label: "destportName",
  468. name: "目的港",
  469. checked: 0,
  470. width: 120,
  471. },
  472. {
  473. surface: "18",
  474. label: "moneyStatus",
  475. name: "费用状态",
  476. checked: 0,
  477. width: 120,
  478. }
  479. ],
  480. //自定义列宽
  481. allCheck: false,
  482. showSetting:false,
  483. serviceitems:[],
  484. container:[],
  485. // 遮罩层
  486. loading: true,
  487. // 选中数组
  488. ids: [],
  489. // 非单个禁用
  490. single: true,
  491. // 非多个禁用
  492. multiple: true,
  493. // 显示搜索条件
  494. showSearch: true,
  495. // 总条数
  496. total: 0,
  497. // 客户详情表格数据
  498. corpsList: [],
  499. // 查询参数
  500. queryParams: {
  501. pageNum: 1,
  502. pageSize: 10,
  503. },
  504. };
  505. },
  506. created() {
  507. this.setRowList = this.tableDate;
  508. this.getRowList = this.tableDate;
  509. this.getList();
  510. this.cntrRemoteMethod()
  511. this.vessleRemthod()
  512. this.voyageRemthods()
  513. this.getDicts("f_serviceitems").then((response) => {
  514. if (response.data) {
  515. this.serviceitems = response.data;
  516. }
  517. });
  518. this.getRow()
  519. },
  520. activated() {
  521. this.getList()
  522. },
  523. methods: {
  524. voyageRemthods(){
  525. getVoyageName().then(response=>{
  526. this.voyageOptions = response.rows
  527. })
  528. },
  529. //获取船名
  530. vessleRemthod() {
  531. getVesselName().then(response => {
  532. this.vesselOptions = response.rows
  533. })
  534. },
  535. handleSelect(key, keyPath) {
  536. if(key === '0'){
  537. this.queryParams = {
  538. pageNum: 1,
  539. pageSize: 10,
  540. }
  541. }else if(key === '1'){
  542. this.queryParams.fBillstatus = 4
  543. }else if(key === '2'){
  544. this.queryParams.fBillstatus = 6
  545. }else if(key === '3'){
  546. this.queryParams.fBillstatus = 9
  547. }else if(key === '4'){
  548. this.queryParams.fBillstatus = 11
  549. }else if(key === '7'){
  550. this.queryParams.fBillstatus = 12
  551. }
  552. listCorps(this.queryParams).then(response => {
  553. this.corpsList = response.rows;
  554. this.total = response.total;
  555. this.loading = false;
  556. });
  557. },
  558. //重置列表
  559. delRow() {
  560. this.data = {
  561. tableName: "我的订单",
  562. userId: Cookies.get("userName"),
  563. };
  564. resetModule(this.data).then((res) => {
  565. if (res.code == 200) {
  566. this.showSetting = false;
  567. this.setRowList = this.tableDate;
  568. this.getRowList = this.tableDate;
  569. }
  570. });
  571. },
  572. //列设置全选
  573. allChecked() {
  574. if (this.allCheck == true) {
  575. this.setRowList.map((e) => {
  576. return (e.checked = 0);
  577. });
  578. } else {
  579. this.setRowList.map((e) => {
  580. return (e.checked = 1);
  581. });
  582. }
  583. },
  584. //查询列数据
  585. getRow() {
  586. let that = this;
  587. this.data = {
  588. tableName: "我的订单",
  589. userId: Cookies.get("userName"),
  590. };
  591. select(this.data).then((res) => {
  592. if (res.data.length != 0) {
  593. this.getRowList = res.data.filter((e) => e.checked == 0);
  594. this.setRowList = res.data;
  595. this.setRowList = this.setRowList.reduce((res, item) => {
  596. res.push({
  597. surface: item.surface,
  598. label: item.label,
  599. name: item.name,
  600. checked: item.checked,
  601. width: item.width,
  602. fixed: item.fixed
  603. });
  604. return res;
  605. }, []);
  606. }
  607. });
  608. },
  609. //保存列设置
  610. save() {
  611. this.showSetting = false;
  612. this.data = {
  613. tableName: "我的订单",
  614. userId: Cookies.get("userName"),
  615. sysTableSetList: this.setRowList,
  616. };
  617. addSet(this.data).then((res) => {
  618. this.getRowList = this.setRowList.filter((e) => e.checked == 0);
  619. });
  620. },
  621. //开始拖拽事件
  622. onStart() {
  623. this.drag = true;
  624. },
  625. //拖拽结束事件
  626. onEnd() {
  627. this.drag = false;
  628. },
  629. //箱型下拉查询
  630. cntrRemoteMethod() {
  631. let queryParams = { pageNum: 1,};
  632. getcntrName(queryParams).then(response=>{
  633. this.container = response.rows
  634. })
  635. },
  636. /** 删除按钮操作 */
  637. handleDelete(row) {
  638. const fIds = row.fId || this.ids;
  639. this.$confirm('是否确认删除客户详情编号为"' + fIds + '"的数据项?', "警告", {
  640. confirmButtonText: "确定",
  641. cancelButtonText: "取消",
  642. type: "warning"
  643. }).then(function() {
  644. return delCorps(fIds);
  645. }).then(() => {
  646. this.getList();
  647. this.msgSuccess("删除成功");
  648. })
  649. },
  650. //查看跳转
  651. handleUpdate(row,num){
  652. let res = {}
  653. res = {
  654. fId:row.fId,
  655. num:num
  656. }
  657. this.$router.push({
  658. path: "/domesticTrade/orderInformation",
  659. query: { data: JSON.stringify(res) },
  660. });
  661. },
  662. //模糊查询地点
  663. addressMethod(){
  664. let queryParams = { pageNum: 1,};
  665. getaddress(queryParams).then(response=>{
  666. this.addressOptions = response.rows
  667. })
  668. },
  669. /** 查询客户详情列表 */
  670. getList() {
  671. listCorps(this.queryParams).then(response => {
  672. this.corpsList = response.rows;
  673. this.total = response.total;
  674. this.loading = false;
  675. });
  676. },
  677. // 从表重置
  678. contList() {
  679. this.contactList = []
  680. },
  681. // 状态修改
  682. handleStatusChange(row) {
  683. let text = row.fStatus === "0" ? "启用" : "停用";
  684. this.$confirm('确认要"' + text + '""' + row.fName + '"吗?', "警告", {
  685. confirmButtonText: "确定",
  686. cancelButtonText: "取消",
  687. type: "warning"
  688. }).then(function() {
  689. return changeCorpsStatus(row.fId, row.fStatus);
  690. }).then(() => {
  691. this.msgSuccess(text + "成功");
  692. }).catch(function() {
  693. row.fStatus = row.fStatus === "0" ? "1" : "0";
  694. });
  695. },
  696. /** 搜索按钮操作 */
  697. handleQuery() {
  698. this.queryParams.pageNum = 1;
  699. this.getList();
  700. },
  701. /** 重置按钮操作 */
  702. resetQuery() {
  703. this.queryParams = {
  704. fBillno:null,
  705. fServiceitems:null,
  706. fConsigneername:null,
  707. fCntrid:null,
  708. fCntrcount:null,
  709. cLoadDate:null,
  710. }
  711. this.resetForm("queryForm");
  712. this.handleQuery();
  713. },
  714. // 多选框选中数据
  715. handleSelectionChange(selection) {
  716. this.ids = selection.map(item => item.fId)
  717. this.single = selection.length!==1
  718. this.multiple = !selection.length
  719. },
  720. }
  721. };
  722. </script>
  723. <style lang="scss" scoped>
  724. .tabSetting {
  725. display: flex;
  726. justify-content: flex-end;
  727. }
  728. .listStyle {
  729. display: flex;
  730. border-top: 1px solid #dcdfe6;
  731. border-left: 1px solid #dcdfe6;
  732. border-right: 1px solid #dcdfe6;
  733. }
  734. .listStyle:last-child {
  735. border-bottom: 1px solid #dcdfe6;
  736. }
  737. .progress {
  738. display: flex;
  739. align-items: center;
  740. padding: 2px;
  741. background-color: rgba(0, 0, 0, 0.05);
  742. height: 100%;
  743. }
  744. </style>
  745. <style lang="scss">
  746. .el-table {
  747. .el-table__body-wrapper {
  748. z-index: 2;
  749. }
  750. }
  751. </style>