You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1664 lines
52 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <div>
  4. <span @click="favoriteFunction()">
  5. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
  6. </span>
  7. </div>
  8. <el-form :inline="true" label-position="top">
  9. <el-form-item :label="inputSearch1">
  10. <el-input style="width: 100px;" clearable placeholder="" v-model="mainQueryData.requisitionno"></el-input>
  11. </el-form-item>
  12. <el-form-item :label="inputSearch3">
  13. <el-input style="width: 100px;" clearable placeholder="" v-model="mainQueryData.partno"></el-input>
  14. </el-form-item>
  15. <el-form-item :label="inputSearch2">
  16. <el-select v-model="mainQueryData.orderType" placeholder="请选择" style="width: 100px;">
  17. <el-option
  18. key=""
  19. label="全部"
  20. value="">
  21. </el-option>
  22. <el-option
  23. v-for="item in orderTypeList"
  24. :key="item.baseData"
  25. :label="item.baseDesc"
  26. :value="item.baseDesc">
  27. </el-option>
  28. </el-select>
  29. <!-- <el-input style="width: 110px;" clearable placeholder="" v-model="mainQueryData.orderType"></el-input>-->
  30. </el-form-item>
  31. <el-form-item :label="inputSearch4">
  32. <el-select v-model="mainQueryData.authorizeFlag" style="width: 90px;">
  33. <el-option value="" label="全部"></el-option>
  34. <el-option value="Y" label="已审批"></el-option>
  35. <el-option value="N" label="未审批"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item :label="inputSearch12">
  39. <el-select v-model="mainQueryData.approveresult" style="width: 110px;">
  40. <el-option value="" label="全部"></el-option>
  41. <el-option value="审批全通过" label="审批全通过"></el-option>
  42. <el-option value="审批未通过" label="审批未通过"></el-option>
  43. <el-option value="审批部分通过" label="审批部分通过"></el-option>
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item style="margin-top: 20px;">
  47. <el-button @click="getDataList('Y')" type="primary">{{ buttons.search }}</el-button>
  48. <el-button @click="initAddModel(null)" type="primary">{{ buttons.addLabelName }}</el-button>
  49. <el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{ buttons.defaultTable }}
  50. </el-button>
  51. <el-button @click="userSetting()" type="primary">{{ buttons.settingTable }}</el-button>
  52. <download-excel
  53. :fields="fields()"
  54. :data="exportData"
  55. type="xls"
  56. :name="exportName"
  57. :header="exportHeader"
  58. :footer="exportFooter"
  59. :defaultValue="exportDefaultValue"
  60. :fetch="createExportData"
  61. :before-generate="startDownload"
  62. :before-finish="finishDownload"
  63. worksheet="导出信息"
  64. class="el-button el-button--primary el-button--medium">
  65. {{ buttons.download }}
  66. </download-excel>
  67. <el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()"
  68. :disabled="dataListSelections.length <= 0">{{ buttons.deleteList }}
  69. </el-button>
  70. </el-form-item>
  71. </el-form>
  72. <el-table
  73. :height="height"
  74. :data="dataList"
  75. border
  76. v-loading="dataListLoading"
  77. @selection-change="selectionChangeHandle"
  78. style="width: 100%;">
  79. <el-table-column
  80. v-for="(item,index) in columnList" :key="index"
  81. :sortable="item.columnSortable"
  82. :prop="item.columnProp"
  83. :header-align="item.headerAlign"
  84. :show-overflow-tooltip="item.showOverflowTooltip"
  85. :align="item.align"
  86. :fixed="item.fixed"
  87. :width="item.columnWidth"
  88. :label="item.columnLabel">
  89. <template slot-scope="scope">
  90. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  91. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  92. style="width: 100px; height: 80px"/></span>
  93. </template>
  94. </el-table-column>
  95. <el-table-column
  96. fixed="right"
  97. header-align="center"
  98. align="center"
  99. width="120"
  100. :label="buttons.operating">
  101. <template slot-scope="scope">
  102. <a v-if="scope.row.authorizeFlag == 'N'" @click="initAddModel(scope.row)">{{ buttons.edit }}</a>
  103. <a v-if="scope.row.authorizeFlag == 'N'" @click="updateAuthorizeFlag(scope.row)">{{ buttons.close }}</a>
  104. <a
  105. v-if="scope.row.authorizeFlag == 'Y' && scope.row.approvedFlag != 'Y' && scope.row.approveresult == '审批未通过'"
  106. @click="initReapply(scope.row)">{{ buttons.reapply }}</a>
  107. <a @click="initReviewDetails(scope.row.requisitionno)">{{ buttons.reviewDetails }}</a>
  108. </template>
  109. </el-table-column>
  110. </el-table>
  111. <el-pagination
  112. @size-change="sizeChangeHandle"
  113. @current-change="currentChangeHandle"
  114. :current-page="pageIndex"
  115. :page-sizes="[10, 50, 200, 10000]"
  116. :page-size="pageSize"
  117. :total="totalPage"
  118. layout="total, sizes, prev, pager, next, jumper">
  119. </el-pagination>
  120. <el-dialog :close-on-click-modal="false" :show-close="false" :close-on-press-escape="false" title="设置table列"
  121. :visible.sync="visible" width="1000px" v-drag>
  122. <el-form @keyup.enter.native="updateColumnList()"
  123. v-model="userColumnList"
  124. inline="inline"
  125. size="mini"
  126. label-width="80px">
  127. <el-form-item v-for="(item,index) in userColumnList"
  128. :key="item.columnProp"
  129. :label="item.columnLabel"
  130. :prop="item.columnProp">
  131. <el-form-item>
  132. 排序
  133. <el-input-number v-model="item.sortLv" controls-position="right" size="mini" :min="0"
  134. :max="10"></el-input-number>
  135. </el-form-item>
  136. <el-form-item>
  137. <el-switch
  138. v-model="item.status"
  139. active-text="显示"
  140. inactive-text="隐藏">
  141. </el-switch>
  142. </el-form-item>
  143. <el-form-item>
  144. <el-switch
  145. v-model="item.columnSortable"
  146. active-text="排序"
  147. inactive-text="不排序">
  148. </el-switch>
  149. </el-form-item>
  150. <el-form-item>
  151. <el-switch
  152. v-model="item.fixed"
  153. active-text="固定"
  154. inactive-text="不固定">
  155. </el-switch>
  156. </el-form-item>
  157. <el-form-item>
  158. 宽度
  159. <el-input-number v-model="item.columnWidth" controls-position="right" size="mini" :min="0"
  160. :max="1000"></el-input-number>
  161. </el-form-item>
  162. </el-form-item>
  163. </el-form>
  164. <span slot="footer" class="dialog-footer">
  165. <el-button @click="visible = false">取消</el-button>
  166. <el-button type="primary" @click="updateColumnList()">确定</el-button>
  167. </span>
  168. </el-dialog>
  169. <el-dialog title="申请单信息" :visible.sync="addPRDetailFlag" width="672px" :close-on-click-modal="false"
  170. :close-on-press-escape="false" v-drag>
  171. <el-form :inline="true" label-position="top">
  172. <el-form-item :label="inputSearch5">
  173. <el-select v-model="currentPRDetailData.orderType" placeholder="请选择" filterable style="width: 143px">
  174. <el-option
  175. v-for="(item ,index) in orderTypeList"
  176. :key="index"
  177. :label="item.baseDesc"
  178. :value="item.baseData"
  179. >
  180. </el-option>
  181. </el-select>
  182. </el-form-item>
  183. <el-form-item :label="inputSearch10">
  184. <el-select v-model="currentPRDetailData.supplierid" filterable placeholder="请选择" style="width: 143px">
  185. <el-option
  186. v-for="(item ,index) in supplierList"
  187. :key="index"
  188. :label="item.suppliername"
  189. :value="item.supplierid"
  190. >
  191. </el-option>
  192. </el-select>
  193. </el-form-item>
  194. <el-form-item :label="inputSearch6">
  195. <el-input style="text-align: left;width: 143px" onkeyup="this.value = this.value.toUpperCase()"
  196. v-model="currentPRDetailData.partno"></el-input>
  197. </el-form-item>
  198. <el-form-item :label="inputSearch11">
  199. <el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.partdesc"></el-input>
  200. </el-form-item>
  201. <el-form-item :label="inputSearch7">
  202. <el-input style="text-align: left;width: 143px" @change="getNumber()"
  203. oninput="value=value.replace(/^\.+|[^\d.]/g,'')"
  204. v-model="currentPRDetailData.qty"></el-input>
  205. </el-form-item>
  206. <el-form-item :label="inputSearch8">
  207. <el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.price" @change="getNumber()"
  208. oninput="value=value.replace(/^\.+|[^\d.]/g,'')"></el-input>
  209. </el-form-item>
  210. <el-form-item :label="inputSearch9">
  211. <el-input style="text-align: left;width: 143px"
  212. v-model="currentPRDetailData.totalPrice"
  213. :disabled="true"></el-input>
  214. </el-form-item>
  215. <el-form-item :label="inputSearch13">
  216. <el-select v-model="currentPRDetailData.orderref1" placeholder="请选择" style="width: 143px;">
  217. <el-option
  218. v-for="item in selectList.select1"
  219. :key="item.familyID"
  220. :label="item.familyName"
  221. :value="item.familyID">
  222. </el-option>
  223. </el-select>
  224. </el-form-item>
  225. <el-form-item style="margin-top: 30px">
  226. <upload v-on:childByValue="childByValue"></upload>
  227. </el-form-item>
  228. <el-table
  229. height="170"
  230. :data="fileList"
  231. border
  232. v-loading="dataListLoading"
  233. @selection-change="selectionChangeHandle"
  234. style="width: 100%;">
  235. <el-table-column
  236. v-for="(item,index) in columnList2" :key="index"
  237. :sortable="item.columnSortable"
  238. :prop="item.columnProp"
  239. :header-align="item.headerAlign"
  240. :show-overflow-tooltip="item.showOverflowTooltip"
  241. :align="item.align"
  242. :fixed="item.fixed"
  243. :width="item.columnWidth"
  244. :label="item.columnLabel">
  245. <template slot-scope="scope">
  246. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  247. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  248. style="width: 100px; height: 80px"/></span>
  249. </template>
  250. </el-table-column>
  251. <el-table-column
  252. header-align="center"
  253. align="center"
  254. width="80"
  255. :label="buttons.operating">
  256. <template slot-scope="scope">
  257. <a @click="fileDownload(scope.row)">{{ buttons.fileDownload }}</a>
  258. <a @click="filePreview(scope.row)">{{ buttons.preview }}</a>
  259. </template>
  260. </el-table-column>
  261. </el-table>
  262. </el-form>
  263. <span slot="footer" class="dialog-footer">
  264. <el-button @click="addPRDetailFlag = false">取消</el-button>
  265. <el-button type="primary" :disabled="bannersBut" @click="savePRDetail()">确定</el-button>
  266. </span>
  267. </el-dialog>
  268. <el-dialog title="申请单审核" :visible.sync="reviewDetailsFlag" width="1208px" :close-on-click-modal="false"
  269. v-drag>
  270. <el-table
  271. :height="height"
  272. :data="reviewDetailsList"
  273. border
  274. v-loading="dataListLoading"
  275. @selection-change="selectionChangeHandle"
  276. style="width: 100%;">
  277. <el-table-column
  278. v-for="(item,index) in columnList1" :key="index"
  279. :sortable="item.columnSortable"
  280. :prop="item.columnProp"
  281. :header-align="item.headerAlign"
  282. :show-overflow-tooltip="item.showOverflowTooltip"
  283. :align="item.align"
  284. :fixed="item.fixed"
  285. :width="item.columnWidth"
  286. :label="item.columnLabel">
  287. <template slot-scope="scope">
  288. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  289. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  290. style="width: 100px; height: 80px"/></span>
  291. </template>
  292. </el-table-column>
  293. </el-table>
  294. </el-dialog>
  295. <el-dialog title="预览" :visible.sync="pdfVisible" center width="60%" >
  296. <iframe :src="this.pdfUrl" frameborder="0" width="100%" height="400px"></iframe>
  297. <!-- <div class="pdf">-->
  298. <!-- <div class="pdf-tab">-->
  299. <!-- <span-->
  300. <!-- class="btn-def btn-pre"-->
  301. <!-- @click.stop="prePage">上一页</span>-->
  302. <!-- <span-->
  303. <!-- class="btn-def btn-next"-->
  304. <!-- @click.stop="nextPage">下一页</span>-->
  305. <!-- <span-->
  306. <!-- class="btn-def"-->
  307. <!-- @click.stop="clock">顺时针</span>-->
  308. <!-- <span-->
  309. <!-- class="btn-def"-->
  310. <!-- @click.stop="counterClock">逆时针</span>-->
  311. <!-- <span-->
  312. <!-- class="btn-def"-->
  313. <!-- @click.stop="pdfPrintAll">全部打印</span>-->
  314. <!-- <span-->
  315. <!-- class="btn-def"-->
  316. <!-- @click.stop="pdfPrint">部分打印</span>-->
  317. <!-- </div>-->
  318. <!-- <pdf-->
  319. <!-- ref="pdf"-->
  320. <!-- :src="this.pdfUrl"-->
  321. <!-- :page="pageNum"-->
  322. <!-- :rotate="pageRotate"-->
  323. <!-- @password="password"-->
  324. <!-- @progress="loadedRatio = $event"-->
  325. <!-- @page-loaded="pageLoaded($event)"-->
  326. <!-- @num-pages="pageTotalNum=$event"-->
  327. <!-- @error="pdfError($event)"-->
  328. <!-- @link-clicked="page = $event">-->
  329. <!-- </pdf>-->
  330. <!--&lt;!&ndash; <div>{{pageNum}}/{{pageTotalNum}}</div>&ndash;&gt;-->
  331. <!--&lt;!&ndash; <div>进度{{loadedRatio}}</div>&ndash;&gt;-->
  332. <!--&lt;!&ndash; <div>页面加载成功: {{curPageNum}}</div>&ndash;&gt;-->
  333. <!-- </div>-->
  334. </el-dialog>
  335. </div>
  336. </template>
  337. <script>
  338. import {
  339. searchSysLanguagePackList,
  340. searchSysLanguageParam,
  341. searchFunctionButtonList,
  342. saveButtonList,
  343. searchSysLanguage,
  344. searchLanguageListByLanguageCode,
  345. saveSysLanguageOne
  346. } from "@/api/sysLanguage.js"
  347. import {
  348. saveTableDefaultList,
  349. saveTableUser,
  350. getTableDefaultListLanguage,
  351. getTableUserListLanguage
  352. } from "@/api/table.js"
  353. import {
  354. userFavoriteList, saveUserFavorite, removeUserFavorite
  355. } from '@/api/userFavorite.js'
  356. import {
  357. getPRHeaderList,
  358. getTblBaseDataList,
  359. savePRDetail,
  360. getSupplierList,
  361. getExportList,
  362. authorizationHistList,
  363. updatePRHeaderAuthorizeFlag,
  364. downFtpFile,
  365. getFileList,
  366. getPartFamilyList,
  367. } from '@/api/purchaseorder/purchaseRequisition.js'
  368. import upload from "../common/upload";
  369. import axios from "axios";
  370. import Vue from "vue";
  371. export default {
  372. components: {upload},
  373. data() {
  374. return {
  375. pdfUrl : '',
  376. insertFileList: [],
  377. fileList: [],
  378. // table 高度
  379. height: 0,
  380. bannersBut: false,
  381. addPRDetailFlag: false,
  382. inputSearch1: '申请单号',
  383. inputSearch2: '处理类型',
  384. inputSearch3: '刀模编码',
  385. inputSearch4: '是否审批',
  386. inputSearch5: '处理类型',
  387. inputSearch6: '刀模编码',
  388. inputSearch7: '申请数量',
  389. inputSearch8: '预估单价',
  390. inputSearch9: '预估总价',
  391. inputSearch10: '供应商名称',
  392. inputSearch11: '刀模名称',
  393. inputSearch12: '审批结果',
  394. inputSearch13: '工具类型',
  395. currentPRDetailData: {
  396. username: this.$store.state.user.name,
  397. requisitionno: '',
  398. site: this.$store.state.user.site,
  399. itemno: '',
  400. supplierid: '',
  401. suppliername: '',
  402. orderType: '',
  403. partno: '',
  404. partdesc: '',
  405. qty: 0,
  406. price: 0,
  407. totalPrice: 0,
  408. convertFactor: 0,
  409. currency: '',
  410. status: '',
  411. taxcode: '',
  412. currencyRate: 1,
  413. additionalCose: 0,
  414. orderref1: '',
  415. orderref2: '',
  416. sysOssEntityList: [],
  417. },
  418. mainQueryData: {
  419. requisitionno: '',
  420. orderType: '',
  421. partno: '',
  422. authorizeFlag: 'N',
  423. approveresult: '',
  424. site: this.$store.state.user.site,
  425. userId: this.$store.state.user.name,
  426. limit: '',
  427. page: '',
  428. },
  429. selectList: {
  430. select1: [],
  431. },
  432. userId: this.$store.state.user.name,
  433. site: this.$store.state.user.site,
  434. //审核详情
  435. reviewDetailsFlag: false,
  436. //审核显示list
  437. reviewDetailsList: [],
  438. // 是否收藏
  439. favorite: false,
  440. addLanguage: false,
  441. pdfVisible : false,
  442. functionId: 2001,
  443. tableId: "common1001",
  444. value1: true,
  445. visible: false,
  446. showDefault: false,
  447. // 默认table 查询参数
  448. queryTable: {
  449. functionId: 2001,
  450. tableId: 'PRHeaderTable',
  451. languageCode: this.$i18n.locale
  452. },
  453. // 用户table 查询参数
  454. queryTableUser: {
  455. userId: this.$store.state.user.name,
  456. functionId: 2001,
  457. tableId: "PRHeaderTable",
  458. status: true,
  459. languageCode: this.$i18n.locale
  460. },
  461. // 语言词典查询参数
  462. querySysLanguageParam: {
  463. languageCode: this.$i18n.locale
  464. },
  465. // 语言词典集合
  466. sysLanguageParams: [],
  467. // 用户table 配置集合
  468. userColumnList: [],
  469. // 展示列集
  470. columnList: [
  471. {
  472. userId: this.$store.state.user.name,
  473. functionId: 2001,
  474. serialNumber: 'PRHeader2001RequisitionNo',
  475. tableId: "PRHeaderTable",
  476. tableName: "PRHeader",
  477. columnProp: "requisitionno",
  478. headerAlign: "center",
  479. align: "center",
  480. columnLabel: "申请单单号",
  481. columnHidden: false,
  482. columnImage: false,
  483. columnSortable: false,
  484. sortLv: 0,
  485. status: true,
  486. fixed: false
  487. },
  488. {
  489. userId: this.$store.state.user.name,
  490. functionId: 2001,
  491. serialNumber: 'PRHeader2001OrderType',
  492. tableId: "PRHeaderTable",
  493. tableName: "PRHeader",
  494. columnProp: "orderType",
  495. headerAlign: "center",
  496. align: "center",
  497. columnLabel: "处理类型",
  498. columnHidden: false,
  499. columnImage: false,
  500. columnSortable: false,
  501. sortLv: 0,
  502. status: true,
  503. fixed: false
  504. },
  505. {
  506. userId: this.$store.state.user.name,
  507. functionId: 2001,
  508. serialNumber: 'PRHeader2001Partno',
  509. tableId: "PRHeaderTable",
  510. tableName: "PRHeader",
  511. columnProp: "partno",
  512. headerAlign: "center",
  513. align: "center",
  514. columnLabel: "刀模编码",
  515. columnHidden: false,
  516. columnImage: false,
  517. columnSortable: false,
  518. sortLv: 0,
  519. status: true,
  520. fixed: false
  521. },
  522. {
  523. userId: this.$store.state.user.name,
  524. functionId: 2001,
  525. serialNumber: 'PRHeader2001Partdesc',
  526. tableId: "PRHeaderTable",
  527. tableName: "PRHeader",
  528. columnProp: "partdesc",
  529. headerAlign: "center",
  530. align: "center",
  531. columnLabel: "刀模名称",
  532. columnHidden: false,
  533. columnImage: false,
  534. columnSortable: false,
  535. sortLv: 0,
  536. status: true,
  537. fixed: false
  538. },
  539. {
  540. userId: this.$store.state.user.name,
  541. functionId: 2001,
  542. serialNumber: 'PRHeader2001Qty',
  543. tableId: "PRHeaderTable",
  544. tableName: "PRHeader",
  545. columnProp: "qty",
  546. headerAlign: "center",
  547. align: "center",
  548. columnLabel: "申请数量",
  549. columnHidden: false,
  550. columnImage: false,
  551. columnSortable: false,
  552. sortLv: 0,
  553. status: true,
  554. fixed: false
  555. },
  556. {
  557. userId: this.$store.state.user.name,
  558. functionId: 2001,
  559. serialNumber: 'PRHeader2001Price',
  560. tableId: "PRHeaderTable",
  561. tableName: "PRHeader",
  562. columnProp: "price",
  563. headerAlign: "center",
  564. align: "center",
  565. columnLabel: "预估价格",
  566. columnHidden: false,
  567. columnImage: false,
  568. columnSortable: false,
  569. sortLv: 0,
  570. status: true,
  571. fixed: false
  572. },
  573. {
  574. userId: this.$store.state.user.name,
  575. functionId: 2001,
  576. serialNumber: 'PRHeader2001TotalPrice',
  577. tableId: "PRHeaderTable",
  578. tableName: "PRHeader",
  579. columnProp: "totalPrice",
  580. headerAlign: "center",
  581. align: "center",
  582. columnLabel: "预估总价",
  583. columnHidden: false,
  584. columnImage: false,
  585. columnSortable: false,
  586. sortLv: 0,
  587. status: true,
  588. fixed: false
  589. },
  590. {
  591. userId: this.$store.state.user.name,
  592. functionId: 2001,
  593. serialNumber: 'PRHeader2001Supplierid',
  594. tableId: "PRHeaderTable",
  595. tableName: "PRHeader",
  596. columnProp: "supplierid",
  597. headerAlign: "center",
  598. align: "center",
  599. columnLabel: "供应商编码",
  600. columnHidden: false,
  601. columnImage: false,
  602. columnSortable: false,
  603. sortLv: 0,
  604. status: true,
  605. fixed: false
  606. },
  607. {
  608. userId: this.$store.state.user.name,
  609. functionId: 2001,
  610. serialNumber: 'PRHeader2001Suppliername',
  611. tableId: "PRHeaderTable",
  612. tableName: "PRHeader",
  613. columnProp: "suppliername",
  614. headerAlign: "center",
  615. align: "center",
  616. columnLabel: "供应商名称",
  617. columnHidden: false,
  618. columnImage: false,
  619. columnSortable: false,
  620. sortLv: 0,
  621. status: true,
  622. fixed: false
  623. },
  624. {
  625. userId: this.$store.state.user.name,
  626. functionId: 2001,
  627. serialNumber: 'PRHeader2001EnterDate',
  628. tableId: "PRHeaderTable",
  629. tableName: "PRHeader",
  630. columnProp: "enterDate",
  631. headerAlign: "center",
  632. align: "center",
  633. columnLabel: "创建时间",
  634. columnHidden: false,
  635. columnImage: false,
  636. columnSortable: false,
  637. sortLv: 0,
  638. status: true,
  639. fixed: false
  640. },
  641. {
  642. userId: this.$store.state.user.name,
  643. functionId: 2001,
  644. serialNumber: 'PRHeader2001AuthorizeFlag',
  645. tableId: "PRHeaderTable",
  646. tableName: "PRHeader",
  647. columnProp: "strAuthorizeFlag",
  648. headerAlign: "center",
  649. align: "center",
  650. columnLabel: "是否审批",
  651. columnHidden: false,
  652. columnImage: false,
  653. columnSortable: false,
  654. sortLv: 0,
  655. status: true,
  656. fixed: false
  657. },
  658. {
  659. userId: this.$store.state.user.name,
  660. functionId: 2101,
  661. serialNumber: 'review2101AuthorizeFlag',
  662. tableId: "review2101",
  663. tableName: "PRHeader",
  664. columnProp: "approveresult",
  665. headerAlign: "center",
  666. align: "left",
  667. columnLabel: "审批结果",
  668. columnHidden: false,
  669. columnImage: false,
  670. columnSortable: false,
  671. sortLv: 0,
  672. status: true,
  673. fixed: false
  674. },
  675. ],
  676. // 展示列集
  677. columnList1: [
  678. {
  679. userId: this.$store.state.user.name,
  680. functionId: 2001,
  681. tableId: "reviewDetails2001",
  682. tableName: "reviewDetails",
  683. columnProp: "stepId",
  684. headerAlign: "center",
  685. align: "center",
  686. columnLabel: "审批步骤号",
  687. columnHidden: false,
  688. columnImage: false,
  689. columnSortable: false,
  690. sortLv: 0,
  691. status: true,
  692. fixed: false,
  693. },
  694. {
  695. userId: this.$store.state.user.name,
  696. functionId: 2001,
  697. tableId: "reviewDetails2001",
  698. tableName: "reviewDetails",
  699. columnProp: "authTypeDb",
  700. headerAlign: "center",
  701. align: "center",
  702. columnLabel: "类型",
  703. columnHidden: false,
  704. columnImage: false,
  705. columnSortable: false,
  706. sortLv: 0,
  707. status: true,
  708. fixed: false
  709. },
  710. {
  711. userId: this.$store.state.user.name,
  712. functionId: 2001,
  713. tableId: "reviewDetails2001",
  714. tableName: "reviewDetails",
  715. columnProp: "userName",
  716. headerAlign: "center",
  717. align: "center",
  718. columnLabel: "账号",
  719. columnHidden: false,
  720. columnImage: false,
  721. columnSortable: false,
  722. sortLv: 0,
  723. status: true,
  724. fixed: false,
  725. },
  726. {
  727. userId: this.$store.state.user.name,
  728. functionId: 2001,
  729. tableId: "reviewDetails2001",
  730. tableName: "reviewDetails",
  731. columnProp: "userDisplay",
  732. headerAlign: "center",
  733. align: "center",
  734. columnLabel: "用户名称",
  735. columnHidden: false,
  736. columnImage: false,
  737. columnSortable: false,
  738. sortLv: 0,
  739. status: true,
  740. fixed: false,
  741. },
  742. {
  743. userId: this.$store.state.user.name,
  744. functionId: 2001,
  745. tableId: "reviewDetails2001",
  746. tableName: "reviewDetails",
  747. columnProp: "authRuleId",
  748. headerAlign: "center",
  749. align: "center",
  750. columnLabel: "审批组编码",
  751. columnHidden: false,
  752. columnImage: false,
  753. columnSortable: false,
  754. sortLv: 0,
  755. status: true,
  756. fixed: false,
  757. },
  758. {
  759. userId: this.$store.state.user.name,
  760. functionId: 2001,
  761. tableId: "reviewDetails2001",
  762. tableName: "reviewDetails",
  763. columnProp: "strRuleDesc",
  764. headerAlign: "center",
  765. align: "center",
  766. columnLabel: "审批组名称",
  767. columnHidden: false,
  768. columnImage: false,
  769. columnSortable: false,
  770. sortLv: 0,
  771. status: true,
  772. fixed: false,
  773. },
  774. {
  775. userId: this.$store.state.user.name,
  776. functionId: 2001,
  777. tableId: "reviewDetails2001",
  778. tableName: "reviewDetails",
  779. columnProp: "strActAuthorizator",
  780. headerAlign: "center",
  781. align: "center",
  782. columnLabel: "最终审批人",
  783. columnHidden: false,
  784. columnImage: false,
  785. columnSortable: false,
  786. sortLv: 0,
  787. status: true,
  788. fixed: false,
  789. },
  790. {
  791. userId: this.$store.state.user.name,
  792. functionId: 2001,
  793. tableId: "reviewDetails2001",
  794. tableName: "reviewDetails",
  795. columnProp: "actAuthorizeDate",
  796. headerAlign: "center",
  797. align: "center",
  798. columnLabel: "最终审批时间",
  799. columnHidden: false,
  800. columnImage: false,
  801. columnSortable: false,
  802. sortLv: 0,
  803. status: true,
  804. fixed: false,
  805. columnWidth: 135,
  806. },
  807. {
  808. userId: this.$store.state.user.name,
  809. functionId: 2001,
  810. tableId: "reviewDetails2001",
  811. tableName: "reviewDetails",
  812. columnProp: "strCanAuthFlag",
  813. headerAlign: "center",
  814. align: "center",
  815. columnLabel: "是否可以审批",
  816. columnHidden: false,
  817. columnImage: false,
  818. columnSortable: false,
  819. sortLv: 0,
  820. status: true,
  821. fixed: false,
  822. },
  823. {
  824. userId: this.$store.state.user.name,
  825. functionId: 2001,
  826. tableId: "reviewDetails2001",
  827. tableName: "reviewDetails",
  828. columnProp: "strAuthFlag",
  829. headerAlign: "center",
  830. align: "center",
  831. columnLabel: "是否审批",
  832. columnHidden: false,
  833. columnImage: false,
  834. columnSortable: false,
  835. sortLv: 0,
  836. status: true,
  837. fixed: false,
  838. },
  839. {
  840. userId: this.$store.state.user.name,
  841. functionId: 2001,
  842. tableId: "reviewDetails2001",
  843. tableName: "reviewDetails",
  844. columnProp: "approveResult",
  845. headerAlign: "center",
  846. align: "center",
  847. columnLabel: "审批结果",
  848. columnHidden: false,
  849. columnImage: false,
  850. columnSortable: false,
  851. sortLv: 0,
  852. status: true,
  853. fixed: false,
  854. },
  855. {
  856. userId: this.$store.state.user.name,
  857. functionId: 2001,
  858. tableId: "reviewDetails2001",
  859. tableName: "reviewDetails",
  860. columnProp: "remark",
  861. headerAlign: "center",
  862. align: "center",
  863. columnLabel: "审批备注",
  864. columnHidden: false,
  865. columnImage: false,
  866. columnSortable: false,
  867. sortLv: 0,
  868. status: true,
  869. fixed: false,
  870. },
  871. ],
  872. // 展示列集
  873. columnList2: [
  874. {
  875. userId: this.$store.state.user.name,
  876. functionId: 2001,
  877. tableId: "fileDetail2001",
  878. tableName: "fileDetailTable",
  879. columnProp: "fileName",
  880. headerAlign: "center",
  881. align: "center",
  882. columnLabel: "文件名称",
  883. columnHidden: false,
  884. columnImage: false,
  885. columnSortable: false,
  886. sortLv: 0,
  887. status: true,
  888. fixed: false
  889. },
  890. {
  891. userId: this.$store.state.user.name,
  892. functionId: 2001,
  893. tableId: "fileDetail2001",
  894. tableName: "fileDetailTable",
  895. columnProp: "createDate",
  896. headerAlign: "center",
  897. align: "center",
  898. columnLabel: "创建时间",
  899. columnHidden: false,
  900. columnImage: false,
  901. columnSortable: false,
  902. sortLv: 0,
  903. status: true,
  904. fixed: false,
  905. columnWidth: 135,
  906. },
  907. {
  908. userId: this.$store.state.user.name,
  909. functionId: 2001,
  910. tableId: "fileDetail2001",
  911. tableName: "fileDetailTable",
  912. columnProp: "createdBy",
  913. headerAlign: "center",
  914. align: "center",
  915. columnLabel: "创建人",
  916. columnHidden: false,
  917. columnImage: false,
  918. columnSortable: false,
  919. sortLv: 0,
  920. status: true,
  921. fixed: false,
  922. columnWidth: 70,
  923. },
  924. ],
  925. // 数据集
  926. dataList: [],
  927. //选项
  928. orderTypeList: [],
  929. supplierList: [],
  930. queryButton: {
  931. functionId: 2001,
  932. table_id: 'common1001',
  933. languageCode: this.$i18n.locale,
  934. objectType: 'button'
  935. },
  936. buttons: {
  937. add: '添加',
  938. edit: '编辑',
  939. delete: '删除',
  940. deleteList: '批量删除',
  941. cz: '操作',
  942. search: '查询',
  943. download: '导出',
  944. settingTable: '设置列表',
  945. defaultTable: '设置默认配置',
  946. addLabelName: '新增',
  947. operating: '操作',
  948. reviewDetails: "审批详情",
  949. close: '关闭',
  950. fileDownload: '下载',
  951. reapply: '重新申请',
  952. preview: '预览',
  953. },
  954. // 导出 start
  955. exportData: [],
  956. exportDataStandard: {
  957. "功能编码": "functionId",
  958. "序列化编码": "objectId",
  959. "类型": "objectType",
  960. "语言值": "languageValue"
  961. },
  962. exportName: "刀申请",
  963. exportHeader: ["刀申请"],
  964. exportFooter: [],
  965. exportDefaultValue: "这一行这一列没有数据",
  966. // 导出 end
  967. buttonList: [
  968. // {
  969. // functionId: "9001",
  970. // languageValue: '添加',
  971. // objectId: 'add',
  972. // objectType: "button",
  973. // tableId: "common1001"
  974. // },
  975. // {
  976. // functionId: "9001",
  977. // languageValue: '编辑',
  978. // objectId: 'edit',
  979. // objectType: "button",
  980. // tableId: "common1001"
  981. // },
  982. // {
  983. // functionId: "9001",
  984. // languageValue: '删除',
  985. // objectId: 'delete',
  986. // objectType: "button",
  987. // tableId: "common1001"
  988. // },
  989. // {
  990. // functionId: "9001",
  991. // languageValue: '批量删除',
  992. // objectId: 'deleteList',
  993. // objectType: "button",
  994. // tableId: "common1001"
  995. // },
  996. // {
  997. // functionId: "9001",
  998. // languageValue: '操作',
  999. // objectId: 'cz',
  1000. // objectType: "button",
  1001. // tableId: "common1001"
  1002. // },
  1003. // {
  1004. // functionId: "9001",
  1005. // languageValue: '查询',
  1006. // objectId: 'search',
  1007. // objectType: "button",
  1008. // tableId: "common1001"
  1009. // },
  1010. // {
  1011. // functionId: "9001",
  1012. // languageValue: '导出',
  1013. // objectId: 'download',
  1014. // objectType: "button",
  1015. // tableId: "common1001"
  1016. // },
  1017. // {
  1018. // functionId: "9001",
  1019. // languageValue: '设置列表',
  1020. // objectId: 'settingTable',
  1021. // objectType: "button",
  1022. // tableId: "common1001"
  1023. // },
  1024. // {
  1025. // functionId: "9001",
  1026. // languageValue: '设置默认配置',
  1027. // objectId: 'defaultTable',
  1028. // objectType: "button",
  1029. // tableId: "common1001"
  1030. // }
  1031. ],
  1032. languageList: [],
  1033. languageColumnList: [],
  1034. languageDataList: [],
  1035. queryLanguage: {},
  1036. // 数据集条件
  1037. querySysLanguagePack: {
  1038. page: 1,
  1039. limit: 1,
  1040. languageValue: '',
  1041. objectType: '',
  1042. objectId: ''
  1043. },
  1044. //
  1045. // 分页
  1046. pageIndex: 1,
  1047. pageSize: 10,
  1048. totalPage: 0,
  1049. dataListLoading: false,
  1050. dataListSelections: [],
  1051. addOrUpdateVisible: false,
  1052. }
  1053. },
  1054. mounted() {
  1055. this.$nextTick(() => {
  1056. this.height = window.innerHeight - 200;
  1057. })
  1058. },
  1059. activated() {
  1060. this.getDataList()
  1061. this.getLanguageList()
  1062. this.initTblBaseDataList()
  1063. this.initSupplier()
  1064. this.getPartFamily()
  1065. },
  1066. methods: {
  1067. getPartFamily(){
  1068. let jsonData = {
  1069. site : this.site,
  1070. active : 'Y',
  1071. }
  1072. this.selectList.select1 = []
  1073. getPartFamilyList(jsonData).then(({data}) => {
  1074. if (data.success) {
  1075. this.selectList.select1 = data.rows
  1076. }
  1077. })
  1078. },
  1079. //获取申请单号文件信息
  1080. getFileList(row) {
  1081. let jsonData = {
  1082. site: row.site,
  1083. type: 'PRFile',
  1084. associatedField1: row.requisitionno
  1085. }
  1086. this.fileList = []
  1087. getFileList(jsonData).then(({data}) => {
  1088. if (data.code == 0) {
  1089. this.fileList = data.row
  1090. }
  1091. })
  1092. },
  1093. // 文件下载
  1094. fileDownload(row) {
  1095. axios.get('/api/ftp/file/downFtpFile/' + row.id, {
  1096. responseType: 'blob',
  1097. headers: {
  1098. 'Content-Type': 'application/json',
  1099. 'token':Vue.cookie.get('token')
  1100. }
  1101. }).then(({data}) => {
  1102. // 不限制文件下载类型
  1103. const blob = new Blob([data], {type: "application/octet-stream"})
  1104. // 下载文件名称
  1105. const fileName = row.fileName
  1106. // a标签下载
  1107. const linkNode = document.createElement('a')
  1108. linkNode.download = fileName // a标签的download属性规定下载文件的名称
  1109. linkNode.style.display = 'none'
  1110. linkNode.href = URL.createObjectURL(blob) // 生成一个Blob URL
  1111. // if(val == 'Y'){
  1112. // this.pdfVisible = true
  1113. // this.pdfUrl = linkNode.href
  1114. // }else {
  1115. document.body.appendChild(linkNode)
  1116. linkNode.click() // 模拟在按钮上的一次鼠标单击
  1117. URL.revokeObjectURL(linkNode.href) // 释放URL 对象
  1118. document.body.removeChild(linkNode)
  1119. // }
  1120. })
  1121. },
  1122. filePreview(row){
  1123. this.pdfVisible = true
  1124. this.pdfUrl= 'http://192.168.1.2:9002/file/'+row.newFileName
  1125. },
  1126. childByValue(childValue) {
  1127. // childValue就是子组件传过来的值
  1128. this.fileList.push(childValue)
  1129. this.insertFileList.push(childValue)
  1130. },
  1131. updateAuthorizeFlag(row) {
  1132. let saveData = {
  1133. site: row.site,
  1134. requisitionno: row.requisitionno,
  1135. status: '已关闭',
  1136. authorizeFlag: 'Y',
  1137. approvedFlag: 'N',
  1138. }
  1139. updatePRHeaderAuthorizeFlag(saveData).then(({data}) => {
  1140. if (data.code == 0) {
  1141. this.getDataList()
  1142. }
  1143. this.$alert(data.msg, '操作提示', {
  1144. confirmButtonText: '确定',
  1145. callback: action => {
  1146. }
  1147. });
  1148. })
  1149. },
  1150. initReviewDetails(orderRef1) {
  1151. this.reviewDetailsFlag = true
  1152. this.reviewDetailsList = []
  1153. this.getAuthorizationHistList(orderRef1)
  1154. },
  1155. getAuthorizationHistList(orderRef1) {
  1156. let queryData = {
  1157. site: this.site,
  1158. orderRef1: orderRef1,
  1159. authRuleId: 5,
  1160. }
  1161. authorizationHistList(queryData).then(({data}) => {
  1162. this.reviewDetailsList = data.rows
  1163. })
  1164. },
  1165. getNumber() {
  1166. this.currentPRDetailData.totalPrice = this.decimalUtil.mul(this.currentPRDetailData.qty, this.currentPRDetailData.price)
  1167. },
  1168. savePRDetail() {
  1169. this.bannersBut = true
  1170. if (this.currentPRDetailData.orderType == null || this.currentPRDetailData.orderType.trim() === "") {
  1171. this.$alert('请选择处理类型!', '操作提示', {
  1172. confirmButtonText: '确定',
  1173. callback: action => {
  1174. this.bannersBut = false
  1175. }
  1176. });
  1177. return
  1178. } else if (this.currentPRDetailData.supplierid == null || this.currentPRDetailData.supplierid.trim() === "") {
  1179. this.$alert('请选择供应商名称!', '操作提示', {
  1180. confirmButtonText: '确定',
  1181. callback: action => {
  1182. this.bannersBut = false
  1183. }
  1184. });
  1185. return
  1186. } else if (this.currentPRDetailData.partno == null || this.currentPRDetailData.partno.trim() === "") {
  1187. this.$alert('请输入刀模编码!', '操作提示', {
  1188. confirmButtonText: '确定',
  1189. callback: action => {
  1190. this.bannersBut = false
  1191. }
  1192. });
  1193. return
  1194. } else if (this.currentPRDetailData.qty === 0 || this.currentPRDetailData.qty <= 0) {
  1195. this.$alert('请输入申请数量!', '操作提示', {
  1196. confirmButtonText: '确定',
  1197. callback: action => {
  1198. this.bannersBut = false
  1199. }
  1200. });
  1201. return
  1202. } else if (this.currentPRDetailData.price === 0 || this.currentPRDetailData.price <= 0) {
  1203. this.$alert('请输入预估单价!', '操作提示', {
  1204. confirmButtonText: '确定',
  1205. callback: action => {
  1206. this.bannersBut = false
  1207. }
  1208. });
  1209. return
  1210. } else if (this.currentPRDetailData.partDesc === 0 || this.currentPRDetailData.partDesc <= 0) {
  1211. this.$alert('请输入刀模名称!', '操作提示', {
  1212. confirmButtonText: '确定',
  1213. callback: action => {
  1214. this.bannersBut = false
  1215. }
  1216. });
  1217. return
  1218. }else if (this.currentPRDetailData.orderref1.trim() === "") {
  1219. this.$alert('请输入工具类型!', '操作提示', {
  1220. confirmButtonText: '确定',
  1221. callback: action => {
  1222. this.bannersBut = false
  1223. }
  1224. });
  1225. return
  1226. }
  1227. let partNo = this.currentPRDetailData.partno.toUpperCase()
  1228. this.currentPRDetailData.partno = partNo
  1229. let filter = this.supplierList.filter(item => item.supplierid === this.currentPRDetailData.supplierid);
  1230. this.currentPRDetailData.suppliername = filter[0].suppliername
  1231. this.currentPRDetailData.currency = filter[0].currency
  1232. this.currentPRDetailData.taxcode = filter[0].taxcode
  1233. this.currentPRDetailData.fileType = 'PRFile'
  1234. this.currentPRDetailData.sysOssEntityList = this.insertFileList
  1235. savePRDetail(this.currentPRDetailData).then(({data}) => {
  1236. this.bannersBut = false
  1237. if (data.code == 0) {
  1238. this.bannersFlag = false
  1239. this.getDataList()
  1240. }
  1241. this.$alert(data.msg, '操作提示', {
  1242. confirmButtonText: '确定',
  1243. callback: action => {
  1244. if (data.code == 0) {
  1245. this.addPRDetailFlag = false
  1246. }
  1247. this.addPRDetailFlag = false
  1248. this.bannersBut = false
  1249. }
  1250. });
  1251. })
  1252. },
  1253. initSupplier() {
  1254. let queryData = {
  1255. site: this.site
  1256. }
  1257. getSupplierList(queryData).then(({data}) => {
  1258. this.supplierList = data.rows
  1259. })
  1260. },
  1261. initTblBaseDataList() {
  1262. let queryData = {
  1263. type: 'orderType'
  1264. }
  1265. getTblBaseDataList(queryData).then(({data}) => {
  1266. this.orderTypeList = data.rows
  1267. })
  1268. },
  1269. initReapply(row) {
  1270. this.currentPRDetailData.orderref1 = row.requisitionno
  1271. this.currentPRDetailData.orderref2 = row.itemno
  1272. this.initAddModel(null, 'Y')
  1273. },
  1274. initAddModel(row, val) {
  1275. this.fileList = []
  1276. this.insertFileList = []
  1277. if (row == null) {
  1278. this.currentPRDetailData.requisitionno = ''
  1279. this.currentPRDetailData.itemno = ''
  1280. this.currentPRDetailData.supplierid = ''
  1281. this.currentPRDetailData.suppliername = ''
  1282. this.currentPRDetailData.orderType = ''
  1283. this.currentPRDetailData.partno = ''
  1284. this.currentPRDetailData.qty = 0
  1285. this.currentPRDetailData.price = 0
  1286. this.currentPRDetailData.status = '已下达'
  1287. this.currentPRDetailData.taxCode = ''
  1288. this.currentPRDetailData.partdesc = ''
  1289. this.currentPRDetailData.orderref1 = ''
  1290. } else {
  1291. this.currentPRDetailData.requisitionno = row.requisitionno
  1292. this.currentPRDetailData.itemno = row.itemno
  1293. this.currentPRDetailData.supplierid = row.supplierid
  1294. this.currentPRDetailData.suppliername = row.suppliername
  1295. this.currentPRDetailData.orderType = row.orderType
  1296. this.currentPRDetailData.partno = row.partno
  1297. this.currentPRDetailData.qty = row.qty
  1298. this.currentPRDetailData.price = row.price
  1299. this.currentPRDetailData.status = ''
  1300. this.currentPRDetailData.taxCode = row.taxCode
  1301. this.currentPRDetailData.partDesc = row.partdesc
  1302. this.currentPRDetailData.orderref1 = row.orderref1
  1303. this.getFileList(row)
  1304. }
  1305. /* if (val != 'Y') {
  1306. this.currentPRDetailData.orderref1 = null
  1307. this.currentPRDetailData.orderref2 = null
  1308. }*/
  1309. this.getNumber()
  1310. this.bannersBut = false
  1311. this.addPRDetailFlag = true
  1312. },
  1313. // 校验用户是否收藏
  1314. favoriteIsOk() {
  1315. let userFavorite = {
  1316. userId: this.$store.state.user.id,
  1317. languageCode: this.$i18n.locale
  1318. }
  1319. userFavoriteList(userFavorite).then(({data}) => {
  1320. let size = data.list.filter(item => item.userId == userFavorite.menuId).length;
  1321. if (size > 0) {
  1322. this.favorite = true
  1323. } else {
  1324. this.favorite = false
  1325. }
  1326. })
  1327. },
  1328. // 收藏 OR 取消收藏
  1329. favoriteFunction() {
  1330. let userFavorite = {
  1331. userId: this.$store.state.user.id,
  1332. functionId: this.$route.meta.menuId,
  1333. }
  1334. if (this.favorite) {
  1335. // 取消收藏
  1336. this.$confirm(`确定取消收藏`, '提示', {
  1337. confirmButtonText: '确定',
  1338. cancelButtonText: '取消',
  1339. type: 'warning'
  1340. }).then(() => {
  1341. removeUserFavorite(userFavorite).then(({data}) => {
  1342. this.$message.success(data.msg)
  1343. this.favorite = false
  1344. })
  1345. })
  1346. } else {
  1347. // 收藏
  1348. saveUserFavorite(userFavorite).then(({data}) => {
  1349. this.$message.success(data.msg)
  1350. this.favorite = true
  1351. })
  1352. }
  1353. },
  1354. // 保存语言编辑
  1355. saveLanguageList(val) {
  1356. saveSysLanguageOne(val).then(({data}) => {
  1357. if (data.code == 0) {
  1358. this.$message.success(data.msg)
  1359. } else {
  1360. this.$message.error(data.msg)
  1361. }
  1362. })
  1363. },
  1364. // 编辑语言
  1365. addLanguageFun() {
  1366. if (this.querySysLanguagePack.languageCode) {
  1367. this.addLanguage = true
  1368. this.languageColumnList = []
  1369. let query = {
  1370. functionId: 2001,
  1371. tableId: "common1002",
  1372. languageCode: this.$i18n.locale
  1373. }
  1374. getTableDefaultListLanguage(query).then(({data}) => {
  1375. if (data.rows.length > 0) {
  1376. this.languageColumnList = data.rows
  1377. }
  1378. })
  1379. this.languageColumnList = this.columnList
  1380. searchLanguageListByLanguageCode(this.querySysLanguagePack).then(({data}) => {
  1381. this.languageDataList = data.rows
  1382. })
  1383. } else {
  1384. this.$message("请选中一种语言")
  1385. }
  1386. },
  1387. // 获取多语言列表
  1388. getLanguageList() {
  1389. searchSysLanguage(this.queryLanguage).then(({data}) => {
  1390. this.languageList = data.rows
  1391. })
  1392. },
  1393. // 获取button的词典
  1394. getFunctionButtonList() {
  1395. searchFunctionButtonList(this.queryButton).then(({data}) => {
  1396. if (data.data.length > 0) {
  1397. this.buttons = data.data
  1398. } else {
  1399. saveButtonList(this.buttonList).then(({data}) => {
  1400. })
  1401. }
  1402. })
  1403. },
  1404. // 获取语言词典
  1405. getSysLanguageParamList() {
  1406. searchSysLanguageParam(this.querySysLanguageParam).then(({data}) => {
  1407. this.sysLanguageParams = data.rows
  1408. })
  1409. },
  1410. // 打开页面设置
  1411. userSetting() {
  1412. this.visible = true;
  1413. this.getTableUserAll()
  1414. },
  1415. // 获取 用户的配置
  1416. getTableUserAll() {
  1417. let queryTable = {
  1418. userId: this.$store.state.user.name,
  1419. functionId: 2001,
  1420. tableId: "common1001",
  1421. languageCode: this.$i18n.locale
  1422. }
  1423. getTableUserListLanguage(queryTable).then(({data}) => {
  1424. if (data.code == 0) {
  1425. this.userColumnList = data.rows
  1426. if (data.rows.length <= 0) {
  1427. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  1428. this.userColumnList = data.rows
  1429. })
  1430. }
  1431. }
  1432. })
  1433. },
  1434. // 修改 table 列
  1435. updateColumnList() {
  1436. let userColumns = []
  1437. for (let column of this.userColumnList) {
  1438. let userColumn = {
  1439. userId: this.$store.state.user.name,
  1440. functionId: column.functionId,
  1441. tableId: column.tableId,
  1442. tableName: column.tableName,
  1443. columnProp: column.columnProp,
  1444. headerAlign: column.headerAlign,
  1445. align: column.align,
  1446. columnWidth: column.columnWidth,
  1447. columnLabel: column.columnLabel,
  1448. columnHidden: column.columnHidden,
  1449. columnImage: column.columnImage,
  1450. columnSortable: column.columnSortable,
  1451. format: column.format,
  1452. sortLv: column.sortLv,
  1453. status: column.status,
  1454. fixed: column.fixed,
  1455. serialNumber: column.serialNumber
  1456. }
  1457. userColumns.push(userColumn)
  1458. }
  1459. saveTableUser(userColumns).then(({data}) => {
  1460. if (data.code == 0) {
  1461. this.$message.success(data.msg)
  1462. this.visible = false
  1463. this.getTableUserColumn()
  1464. } else {
  1465. this.$message.error(data.msg)
  1466. }
  1467. })
  1468. },
  1469. // 获取 用户保存的 格式列
  1470. getTableUserColumn() {
  1471. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  1472. if (data.rows.length > 0) {
  1473. //this.columnList = []
  1474. this.columnList = data.rows
  1475. } else {
  1476. this.getColumnList()
  1477. }
  1478. })
  1479. },
  1480. // 保存 默认配置 列
  1481. saveColumnList() {
  1482. saveTableDefaultList(this.columnList).then(({data}) => {
  1483. if (data.code == 0) {
  1484. this.$message.success(data.msg)
  1485. this.showDefault = false
  1486. } else {
  1487. this.$message.error(data.msg)
  1488. }
  1489. })
  1490. saveTableDefaultList(this.columnList1).then(({data}) => {
  1491. if (data.code == 0) {
  1492. this.$message.success(data.msg)
  1493. this.showDefault = false
  1494. } else {
  1495. this.$message.error(data.msg)
  1496. }
  1497. })
  1498. this.getFunctionButtonList();
  1499. this.getColumnList()
  1500. },
  1501. // 获取 tableDefault 列
  1502. getColumnList() {
  1503. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  1504. if (!data.rows.length == 0) {
  1505. this.showDefault = false
  1506. this.columnList = data.rows
  1507. } else {
  1508. this.showDefault = true
  1509. }
  1510. })
  1511. },
  1512. // 获取数据列表
  1513. getDataList(val) {
  1514. this.dataListLoading = true
  1515. if (val == 'Y') {
  1516. this.pageIndex = 1
  1517. }
  1518. this.mainQueryData.limit = this.pageSize
  1519. this.mainQueryData.page = this.pageIndex
  1520. getPRHeaderList(this.mainQueryData).then(({data}) => {
  1521. if (data && data.code === 0) {
  1522. this.dataList = data.rows.list
  1523. this.totalPage = data.rows.totalCount
  1524. } else {
  1525. this.dataList = []
  1526. this.totalPage = 0
  1527. }
  1528. this.dataListLoading = false
  1529. })
  1530. },
  1531. // 每页数
  1532. sizeChangeHandle(val) {
  1533. this.pageSize = val
  1534. this.pageIndex = 1
  1535. this.getDataList()
  1536. },
  1537. // 当前页
  1538. currentChangeHandle(val) {
  1539. this.pageIndex = val
  1540. this.getDataList()
  1541. },
  1542. // 多选
  1543. selectionChangeHandle(val) {
  1544. this.dataListSelections = val
  1545. },
  1546. // 删除
  1547. deleteHandle(id) {
  1548. var ids = id ? [id] : this.dataListSelections.map(item => {
  1549. return item.id
  1550. })
  1551. this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
  1552. confirmButtonText: '确定',
  1553. cancelButtonText: '取消',
  1554. type: 'warning'
  1555. }).then(() => {
  1556. this.$http({
  1557. url: this.$http.adornUrl('//prd/delete'),
  1558. method: 'post',
  1559. data: this.$http.adornData(ids, false)
  1560. }).then(({data}) => {
  1561. if (data && data.code === 0) {
  1562. this.$message({
  1563. message: '操作成功',
  1564. type: 'success',
  1565. duration: 1500,
  1566. onClose: () => {
  1567. this.getDataList()
  1568. }
  1569. })
  1570. } else {
  1571. this.$message.error(data.msg)
  1572. }
  1573. })
  1574. })
  1575. },
  1576. createExportData() {
  1577. // 点击导出按钮之后,开始导出数据之前的执行函数,返回值为需要下载的数据
  1578. // TODO:构造需要下载的数据返回
  1579. getExportList(this.mainQueryData).then(({data}) => {
  1580. if (data && data.code === 0) {
  1581. return data.rows.list
  1582. }
  1583. return this.dataList;
  1584. })
  1585. },
  1586. startDownload() {
  1587. // this.exportData = this.dataList
  1588. console.log("数据开始")
  1589. },
  1590. finishDownload() {
  1591. console.log("数据下载完成")
  1592. },
  1593. fields() {
  1594. let json = "{"
  1595. this.columnList.forEach((item, index) => {
  1596. if (index == this.columnList.length - 1) {
  1597. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1598. } else {
  1599. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1600. }
  1601. })
  1602. json += "}"
  1603. let s = eval("(" + json + ")")
  1604. return s
  1605. },
  1606. },
  1607. created() {
  1608. this.getTableUserColumn()
  1609. this.getSysLanguageParamList()
  1610. this.getFunctionButtonList()
  1611. this.favoriteIsOk()
  1612. }
  1613. }
  1614. </script>
  1615. <style>
  1616. .sl-input {
  1617. background-color: transparent;
  1618. border: 0 !important;
  1619. font-size: 12px !important;
  1620. height: 12px !important;
  1621. line-height: 14px !important;
  1622. background-color: transparent !important;
  1623. width: 140px;
  1624. }
  1625. .sl-input:focus, textarea:focus {
  1626. outline: none;
  1627. }
  1628. .sl-svg {
  1629. overflow: hidden;
  1630. float: right;
  1631. }
  1632. </style>