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.

1071 lines
35 KiB

  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" :model="querySysLanguagePack" @keyup.enter.native="getDataList()">
  9. <el-form-item :label="inputSearch1">
  10. <el-input style="width: 110px;" clearable placeholder="" v-model="mainQueryData.requisitionno"></el-input>
  11. </el-form-item>
  12. <el-form-item :label="inputSearch2">
  13. <el-select v-model="mainQueryData.orderType" placeholder="请选择" style="width: 110px;">
  14. <el-option
  15. key=""
  16. label="全部"
  17. value="">
  18. </el-option>
  19. <el-option
  20. v-for="item in orderTypeList"
  21. :key="item.baseData"
  22. :label="item.baseDesc"
  23. :value="item.baseDesc">
  24. </el-option>
  25. </el-select>
  26. <!-- <el-input style="width: 110px;" clearable placeholder="" v-model="mainQueryData.orderType"></el-input>-->
  27. </el-form-item>
  28. <el-form-item :label="inputSearch3">
  29. <el-input style="width: 110px;" clearable placeholder="" v-model="mainQueryData.partno"></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>
  39. <el-button @click="getDataList('Y')" type="primary">{{buttons.search}}</el-button>
  40. <el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{buttons.defaultTable}}
  41. </el-button>
  42. <el-button @click="userSetting" type="primary">{{ buttons.settingTable}}</el-button>
  43. <download-excel
  44. :fields="fields()"
  45. :data="exportData"
  46. type="xls"
  47. :name="exportName"
  48. :header="exportHeader"
  49. :footer="exportFooter"
  50. :defaultValue="exportDefaultValue"
  51. :fetch="createExportData"
  52. :before-generate="startDownload"
  53. :before-finish="finishDownload"
  54. worksheet="导出信息"
  55. class="el-button el-button--primary el-button--medium">
  56. {{buttons.download}}
  57. </download-excel>
  58. <el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()"
  59. :disabled="dataListSelections.length <= 0">{{ buttons.deleteList}}
  60. </el-button>
  61. </el-form-item>
  62. <!-- <el-button type="primary" plain @click="printReport">打印报表</el-button>-->
  63. </el-form>
  64. <el-table
  65. id="commmon"
  66. :height="height"
  67. :data="dataList"
  68. border
  69. v-loading="dataListLoading"
  70. @selection-change="selectionChangeHandle"
  71. style="width: 100%;">
  72. <el-table-column
  73. type="selection"
  74. header-align="center"
  75. width="40"
  76. fit
  77. align="center">
  78. </el-table-column>
  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="100"
  100. :label="buttons.operating">
  101. <template slot-scope="scope">
  102. <a v-if="scope.row.authorizeFlag == '未审批'" @click="initReview(scope.row)">{{buttons.audit}}</a>
  103. <span v-else>{{buttons.audit}}</span>
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. <el-pagination
  108. @size-change="sizeChangeHandle"
  109. @current-change="currentChangeHandle"
  110. :current-page="pageIndex"
  111. :page-sizes="[10, 50, 200, 500]"
  112. :page-size="pageSize"
  113. :total="totalPage"
  114. layout="total, sizes, prev, pager, next, jumper">
  115. </el-pagination>
  116. <column v-if="visible" ref="column" @refreshData="getTableUserColumn"></column>
  117. <el-dialog title="申请单审核" :visible.sync="setUp.reviewFlag" width="520px" :close-on-click-modal="false"
  118. v-drag>
  119. <el-steps :active="active" style="margin: 40px">
  120. <el-step v-for=" (item,index) in reviewStepList" :key="index" :title="item.userName"></el-step>
  121. </el-steps>
  122. <div style="margin-left: 0px;margin-top: -30px" v-if="active === index" v-for=" (item,index) in reviewStepList" >
  123. <el-form :inline="true" label-width="120px" label-position="top">
  124. <el-form-item label="审批人">
  125. <el-input style="width: 200px;" readonly placeholder="" :value="item.userName"></el-input>
  126. </el-form-item>
  127. <el-form-item label="审批时间">
  128. <el-input style="width: 200px;" readonly placeholder="" :value="item.strActAuthorizeDate"></el-input>
  129. </el-form-item>
  130. <el-form-item label="审批备注">
  131. <!--<el-input style="width: 200px;" :readonly = "item.userName == saveData.userId && item.authFlag != 'Y' ? false : true" placeholder="" v-model="item.remark"></el-input>-->
  132. <el-input type="textarea" :readonly = "(reviewStepList[index].userName == userId && reviewStepList[index].id == null && (index == 0 ? true : reviewStepList[index -1].authFlag == 'Y')) ? false : true " :rows="3" style="text-align: left;width: 415px;" v-model="item.remark"></el-input>
  133. </el-form-item>
  134. <el-form-item>
  135. <el-button type="primary" v-if="(reviewStepList[index].userName == userId && reviewStepList[index].id == null && (index == 0 ? true : reviewStepList[index -1].authFlag == 'Y')) ? true : false " @click="saveReview(reviewStepList[index] ,'N')">不同意</el-button>
  136. <el-button type="primary" v-if="(reviewStepList[index].userName == userId && reviewStepList[index].id == null && (index == 0 ? true : reviewStepList[index -1].authFlag == 'Y')) ? true : false " @click="saveReview(reviewStepList[index],'Y')">同意</el-button>
  137. </el-form-item>
  138. </el-form>
  139. </div>
  140. <span slot="footer" class="dialog-footer">
  141. <!--<el-button type="primary" @click="naxtStep('s')">上一步</el-button>
  142. <el-button type="primary" @click="naxtStep('x')">下一步</el-button>-->
  143. </span>
  144. </el-dialog>
  145. </div>
  146. </template>
  147. <script>
  148. import column from "../common/column";
  149. import {
  150. searchSysLanguagePackList,
  151. searchSysLanguageParam,
  152. searchFunctionButtonList,
  153. saveButtonList,
  154. searchSysLanguage,
  155. searchLanguageListByLanguageCode,
  156. saveSysLanguageOne
  157. } from "@/api/sysLanguage.js"
  158. import getLodop from '@/utils/LodopFuncs.js'
  159. import {
  160. saveTableDefaultList,
  161. saveTableUser,
  162. getTableDefaultListLanguage,
  163. getTableUserListLanguage
  164. } from "@/api/table.js"
  165. import {
  166. userFavoriteList, saveUserFavorite, removeUserFavorite
  167. } from '@/api/userFavorite.js'
  168. import {
  169. getPRHeaderList,
  170. updatePRHeader,
  171. getTblBaseDataList,
  172. getExportList,
  173. getReviewSteps,
  174. } from '@/api/purchaseorder/procurementReview.js'
  175. export default {
  176. components: {
  177. column
  178. },
  179. data() {
  180. return {
  181. active: 0,
  182. currentReviewStepData :{},
  183. reviewStepList: [],
  184. menuId: this.$route.meta.menuId,
  185. userId: this.$store.state.user.name,
  186. site : this.$store.state.user.site,
  187. saveData: {
  188. userId: this.$store.state.user.name,
  189. recordTypeDb: this.$route.meta.menuId,
  190. orderRef1 : '',
  191. orderRef2 : '',
  192. orderRef3 : '',
  193. site: this.$store.state.user.site,
  194. authRuleId: '',
  195. stepId : '',
  196. authTypeDb : '',
  197. authUserId : '',
  198. authGroupId : '',
  199. actAuthorizator : '',
  200. actAuthorizeDate : null,
  201. remark : '',
  202. authFlag : '',
  203. approveResult : '',
  204. approveResultComments : '',
  205. needAuthBeforePrintFlag : '',
  206. firstStepFlag : '',
  207. lastStepFlag : '',
  208. },
  209. orderTypeList: [],
  210. inputSearch1: '申请单号',
  211. inputSearch2: '处理类型',
  212. inputSearch3: '刀模编码',
  213. inputSearch4: '是否审批',
  214. inputSearch5: '审核意见',
  215. inputSearch6: '审核人',
  216. inputSearch7: '审核时间',
  217. // table高度
  218. height: 450,
  219. // 是否收藏
  220. favorite: false,
  221. addLanguage: false,
  222. functionId: 2101,
  223. tableId: "review2101",
  224. value1: true,
  225. visible: false,
  226. showDefault: false,
  227. //设置
  228. setUp: {
  229. reviewFlag: false,
  230. saveButton: false,
  231. },
  232. mainQueryData: {
  233. requisitionno: '',
  234. orderType: '',
  235. partno: '',
  236. authorizeFlag: 'N',
  237. site: this.$store.state.user.site,
  238. userId: this.$store.state.user.name,
  239. limit: '',
  240. page: '',
  241. },
  242. // 默认table 查询参数
  243. queryTable: {
  244. functionId: 2101,
  245. tableId: "review2101",
  246. languageCode: this.$i18n.locale
  247. },
  248. // 用户table 查询参数
  249. queryTableUser: {
  250. userId: this.$store.state.user.name,
  251. functionId: 2101,
  252. tableId: "review2101",
  253. status: true,
  254. languageCode: this.$i18n.locale
  255. },
  256. // 语言词典查询参数
  257. querySysLanguageParam: {
  258. languageCode: this.$i18n.locale
  259. },
  260. // 语言词典集合
  261. sysLanguageParams: [],
  262. // 用户table 配置集合
  263. userColumnList: [],
  264. // 展示列集
  265. columnList: [
  266. {
  267. userId: this.$store.state.user.name,
  268. functionId: 2101,
  269. serialNumber: 'review2101RequisitionNo',
  270. tableId: "review2101",
  271. tableName: "PRHeader",
  272. columnProp: "requisitionno",
  273. headerAlign: "center",
  274. align: "left",
  275. columnLabel: "申请单单号",
  276. columnHidden: false,
  277. columnImage: false,
  278. columnSortable: false,
  279. sortLv: 0,
  280. status: true,
  281. fixed: false,
  282. // columnWidth : 100,
  283. },
  284. {
  285. userId: this.$store.state.user.name,
  286. functionId: 2101,
  287. serialNumber: 'review2101OrderType',
  288. tableId: "review2101",
  289. tableName: "PRHeader",
  290. columnProp: "orderType",
  291. headerAlign: "center",
  292. align: "left",
  293. columnLabel: "处理类型",
  294. columnHidden: false,
  295. columnImage: false,
  296. columnSortable: false,
  297. sortLv: 0,
  298. status: true,
  299. fixed: false
  300. },
  301. {
  302. userId: this.$store.state.user.name,
  303. functionId: 2101,
  304. serialNumber: 'review2101Partno',
  305. tableId: "review2101",
  306. tableName: "PRHeader",
  307. columnProp: "partno",
  308. headerAlign: "center",
  309. align: "left",
  310. columnLabel: "刀模编码",
  311. columnHidden: false,
  312. columnImage: false,
  313. columnSortable: false,
  314. sortLv: 0,
  315. status: true,
  316. fixed: false
  317. },
  318. {
  319. userId: this.$store.state.user.name,
  320. functionId: 2101,
  321. serialNumber: 'review2101Qty',
  322. tableId: "review2101",
  323. tableName: "PRHeader",
  324. columnProp: "qty",
  325. headerAlign: "center",
  326. align: "right",
  327. columnLabel: "申请数量",
  328. columnHidden: false,
  329. columnImage: false,
  330. columnSortable: false,
  331. sortLv: 0,
  332. status: true,
  333. fixed: false
  334. },
  335. {
  336. userId: this.$store.state.user.name,
  337. functionId: 2101,
  338. serialNumber: 'review2101Price',
  339. tableId: "review2101",
  340. tableName: "PRHeader",
  341. columnProp: "price",
  342. headerAlign: "center",
  343. align: "right",
  344. columnLabel: "预估价格",
  345. columnHidden: false,
  346. columnImage: false,
  347. columnSortable: false,
  348. sortLv: 0,
  349. status: true,
  350. fixed: false
  351. },
  352. {
  353. userId: this.$store.state.user.name,
  354. functionId: 2101,
  355. serialNumber: 'review2101TotalPrice',
  356. tableId: "review2101",
  357. tableName: "PRHeader",
  358. columnProp: "totalPrice",
  359. headerAlign: "center",
  360. align: "right",
  361. columnLabel: "预估总价",
  362. columnHidden: false,
  363. columnImage: false,
  364. columnSortable: false,
  365. sortLv: 0,
  366. status: true,
  367. fixed: false
  368. },
  369. {
  370. userId: this.$store.state.user.name,
  371. functionId: 2101,
  372. serialNumber: 'review2101Supplierid',
  373. tableId: "review2101",
  374. tableName: "PRHeader",
  375. columnProp: "supplierid",
  376. headerAlign: "center",
  377. align: "left",
  378. columnLabel: "供应商编码",
  379. columnHidden: false,
  380. columnImage: false,
  381. columnSortable: false,
  382. sortLv: 0,
  383. status: true,
  384. fixed: false
  385. },
  386. {
  387. userId: this.$store.state.user.name,
  388. functionId: 2101,
  389. serialNumber: 'review2101Suppliername',
  390. tableId: "review2101",
  391. tableName: "PRHeader",
  392. columnProp: "suppliername",
  393. headerAlign: "center",
  394. align: "left",
  395. columnLabel: "供应商名称",
  396. columnHidden: false,
  397. columnImage: false,
  398. columnSortable: false,
  399. sortLv: 0,
  400. status: true,
  401. fixed: false
  402. },
  403. {
  404. userId: this.$store.state.user.name,
  405. functionId: 2101,
  406. serialNumber: 'review2101AuthorizeFlag',
  407. tableId: "review2101",
  408. tableName: "PRHeader",
  409. columnProp: "authorizeFlag",
  410. headerAlign: "center",
  411. align: "left",
  412. columnLabel: "是否审批",
  413. columnHidden: false,
  414. columnImage: false,
  415. columnSortable: false,
  416. sortLv: 0,
  417. status: true,
  418. fixed: false
  419. },
  420. ],
  421. // 展示列集
  422. columnList1: [
  423. // {
  424. // userId: this.$store.state.user.name,
  425. // functionId: 2101,
  426. // tableId: "review2101",
  427. // tableName: "commonLanguage",
  428. // columnProp: "functionId",
  429. // headerAlign: "center",
  430. // align: "center",
  431. // columnLabel: "功能编码",
  432. // columnHidden: false,
  433. // columnImage: false,
  434. // columnSortable: true,
  435. // sortLv: 0,
  436. // status: true,
  437. // fixed: false
  438. // },
  439. // {
  440. // userId: this.$store.state.user.name,
  441. // functionId: 2101,
  442. // tableId: "review2101",
  443. // tableName: "commonLanguage",
  444. // columnProp: "objectId",
  445. // headerAlign: "center",
  446. // align: "center",
  447. // columnLabel: "序列化编码",
  448. // columnHidden: false,
  449. // columnImage: false,
  450. // columnSortable: true,
  451. // sortLv: 0,
  452. // status: true,
  453. // fixed: false,
  454. // },
  455. // {
  456. // userId: this.$store.state.user.name,
  457. // functionId: 2101,
  458. // tableId: "review2101",
  459. // tableName: "commonLanguage",
  460. // columnProp: "objectType",
  461. // headerAlign: "center",
  462. // align: "center",
  463. // columnLabel: "类型",
  464. // columnHidden: false,
  465. // columnImage: false,
  466. // columnSortable: true,
  467. // sortLv: 0,
  468. // status: true,
  469. // fixed: false,
  470. // },
  471. // {
  472. // userId: this.$store.state.user.name,
  473. // functionId: 2101,
  474. // tableId: "review2101",
  475. // tableName: "commonLanguage",
  476. // columnProp: "languageValue",
  477. // headerAlign: "center",
  478. // align: "center",
  479. // columnLabel: "语言值",
  480. // columnHidden: false,
  481. // columnImage: false,
  482. // columnSortable: true,
  483. // sortLv: 0,
  484. // status: true,
  485. // fixed: false,
  486. // },
  487. // {
  488. // userId: this.$store.state.user.name,
  489. // functionId: 2101,
  490. // tableId: "review2101",
  491. // tableName: "commonLanguage",
  492. // columnProp: "languageCode",
  493. // headerAlign: "center",
  494. // align: "center",
  495. // columnLabel: "语言编码",
  496. // columnHidden: false,
  497. // columnImage: false,
  498. // columnSortable: true,
  499. // sortLv: 0,
  500. // status: true,
  501. // fixed: false,
  502. // }
  503. ],
  504. // 数据集
  505. dataList: [],
  506. queryButton: {
  507. functionId: 2101,
  508. table_id: 'review2101',
  509. languageCode: this.$i18n.locale,
  510. objectType: 'button'
  511. },
  512. buttons: {
  513. search: '查询',
  514. download: '导出',
  515. settingTable: '设置列表',
  516. defaultTable: '设置默认配置',
  517. operating: '操作',
  518. audit: '审批',
  519. reviewDetails: '审批详情'
  520. },
  521. // 导出 start
  522. exportData: [],
  523. exportDataStandard: {
  524. "功能编码": "functionId",
  525. "序列化编码": "objectId",
  526. "类型": "objectType",
  527. "语言值": "languageValue"
  528. },
  529. exportName: "申请审核",
  530. exportHeader: ["申请审核"],
  531. exportFooter: [],
  532. exportDefaultValue: "这一行这一列没有数据",
  533. // 导出 end
  534. buttonList: [
  535. // {
  536. // functionId: "2101",
  537. // languageValue: '添加',
  538. // objectId: 'add',
  539. // objectType: "button",
  540. // tableId: "common1001"
  541. // },
  542. // {
  543. // functionId: "2101",
  544. // languageValue: '编辑',
  545. // objectId: 'edit',
  546. // objectType: "button",
  547. // tableId: "common1001"
  548. // },
  549. // {
  550. // functionId: "2101",
  551. // languageValue: '删除',
  552. // objectId: 'delete',
  553. // objectType: "button",
  554. // tableId: "common1001"
  555. // },
  556. // {
  557. // functionId: "2101",
  558. // languageValue: '批量删除',
  559. // objectId: 'deleteList',
  560. // objectType: "button",
  561. // tableId: "common1001"
  562. // },
  563. // {
  564. // functionId: "2101",
  565. // languageValue: '操作',
  566. // objectId: 'cz',
  567. // objectType: "button",
  568. // tableId: "common1001"
  569. // },
  570. // {
  571. // functionId: "2101",
  572. // languageValue: '查询',
  573. // objectId: 'search',
  574. // objectType: "button",
  575. // tableId: "common1001"
  576. // },
  577. // {
  578. // functionId: "2101",
  579. // languageValue: '导出',
  580. // objectId: 'download',
  581. // objectType: "button",
  582. // tableId: "common1001"
  583. // },
  584. // {
  585. // functionId: "2101",
  586. // languageValue: '设置列表',
  587. // objectId: 'settingTable',
  588. // objectType: "button",
  589. // tableId: "common1001"
  590. // },
  591. // {
  592. // functionId: "2101",
  593. // languageValue: '设置默认配置',
  594. // objectId: 'defaultTable',
  595. // objectType: "button",
  596. // tableId: "common1001"
  597. // }
  598. ],
  599. languageList: [],
  600. languageColumnList: [],
  601. languageDataList: [],
  602. queryLanguage: {},
  603. // 数据集条件
  604. querySysLanguagePack: {
  605. page: 1,
  606. limit: 1,
  607. languageValue: '',
  608. objectType: '',
  609. objectId: ''
  610. },
  611. // 分页
  612. pageIndex: 1,
  613. pageSize: 10,
  614. totalPage: 0,
  615. dataListLoading: false,
  616. dataListSelections: [],
  617. addOrUpdateVisible: false
  618. }
  619. },
  620. mounted() {
  621. this.$nextTick(() => {
  622. this.height = window.innerHeight - 282;
  623. })
  624. },
  625. activated() {
  626. this.getReviewStepList();
  627. this.getDataList()
  628. this.getLanguageList()
  629. this.initTblBaseDataList()
  630. },
  631. methods: {
  632. /*naxtStep(val){
  633. if (val == 's' && this.active != 0){
  634. this.active -= 1
  635. }
  636. if(this.active < this.reviewStepList.length-1 && val == 'x' ){
  637. this.active += 1
  638. }
  639. },*/
  640. getReviewStepList(orderRef1) {
  641. this.reviewStepList = []
  642. let queryData = {
  643. recordTypeDb: this.menuId,
  644. site: this.site,
  645. orderRef1 : orderRef1,
  646. }
  647. getReviewSteps(queryData).then(({data}) => {
  648. this.reviewStepList = data.rows
  649. let list = data.rows;
  650. for (let i = 0; i < list.length; i++) {
  651. if(list[i].userName == this.userId){
  652. this.active = i
  653. break
  654. }
  655. }
  656. })
  657. },
  658. initTblBaseDataList() {
  659. let queryData = {
  660. type: 'orderType'
  661. }
  662. getTblBaseDataList(queryData).then(({data}) => {
  663. this.orderTypeList = data.rows
  664. })
  665. },
  666. saveReview(row ,val) {
  667. debugger
  668. this.setUp.saveButton = true
  669. this.setUp.saveButton = false
  670. this.saveData = {}
  671. if(row.remark == '' && row.authFlag == null){
  672. this.$alert(data.msg, '操作提示', {
  673. confirmButtonText: '确定',
  674. callback: action => {
  675. this.saveButton = false
  676. }
  677. });
  678. }
  679. this.saveData.recordTypeDb = this.menuId
  680. this.saveData.orderRef1 = this.currentReviewStepData.requisitionno
  681. this.saveData.orderRef2 = ""
  682. this.saveData.orderRef3 = ""
  683. this.saveData.site = this.site
  684. this.saveData.authRuleId = row.authRuleId
  685. this.saveData.stepId = row.stepId
  686. this.saveData.authTypeDb = row.authTypeDb
  687. this.saveData.authUserId = row.authUserId
  688. this.saveData.authGroupId = row.authGroupId
  689. this.saveData.actAuthorizator = row.authUserId
  690. this.saveData.actAuthorizeDate = null
  691. this.saveData.remark = row.remark
  692. this.saveData.authFlag = 'Y'
  693. this.saveData.canAuthFlag = 'N'
  694. this.saveData.approveResultComments = ""
  695. this.saveData.needAuthBeforePrintFlag = row.needAuthBeforePrintFlag
  696. this.saveData.needDoubleConfirmFlag = "N"
  697. this.saveData.firstStepFlag = row.firstStepFlag
  698. this.saveData.lastStepFlag = row.lastStepFlag
  699. this.saveData.partNo = this.currentReviewStepData.partno
  700. this.saveData.itemNo = this.currentReviewStepData.itemno
  701. this.saveData.qty = this.currentReviewStepData.qty
  702. this.saveData.userName = row.userName
  703. this.saveData.orderType = this.currentReviewStepData.orderType
  704. this.saveData.supplierId = this.currentReviewStepData.supplierid
  705. this.saveData.supplierName = this.currentReviewStepData.suppliername
  706. this.saveData.torNumdown = 1
  707. this.saveData.torNumacc = 1
  708. this.saveData.approvedFlag = val
  709. if(val == "Y"){
  710. this.saveData.approveResult = "审批部分通过"
  711. }else if(val == "N"){
  712. this.saveData.approveResult = "审批未通过"
  713. }
  714. updatePRHeader(this.saveData).then(({data}) => {
  715. if(data.code == 0){
  716. this.getDataList('Y')
  717. this.getReviewStepList(this.currentReviewStepData.requisitionno)
  718. }
  719. this.$alert(data.msg, '操作提示', {
  720. confirmButtonText: '确定',
  721. callback: action => {
  722. this.saveButton = false
  723. if(data.code == 0){
  724. this.setUp.reviewFlag = false
  725. }
  726. }
  727. });
  728. })
  729. },
  730. //初始审核信息
  731. initReview(row) {
  732. this.setUp.saveButton = false
  733. this.setUp.reviewFlag = true
  734. this.currentReviewStepData = row
  735. this.saveData.requisitionno = row.requisitionno
  736. this.saveData.partNo = row.partno
  737. this.saveData.itemno = row.itemno
  738. this.saveData.qty = row.qty
  739. this.saveData.orderType = row.orderType
  740. this.saveData.suppliername = row.suppliername
  741. this.saveData.supplierid = row.supplierid
  742. this.saveData.remark = ''
  743. this.saveData.authorizeFlag = 'Y'
  744. this.getReviewStepList(this.currentReviewStepData.requisitionno)
  745. },
  746. // 打印方式
  747. printReport() {
  748. const LODOP = getLodop()
  749. if (LODOP) {
  750. var strBodyStyle = '<style>'
  751. strBodyStyle += 'table { border-top: 1 solid #000000; border-left: 1 solid #000000; border-collapse:collapse; border-spacing:0;}'
  752. strBodyStyle += 'caption { line-height:2em; }'
  753. strBodyStyle += 'td { border-right: 1 solid #000000; border-bottom: 1 solid #000000; text-align:center; padding:2px 3px; font-size:11px;}'
  754. strBodyStyle += '</style>' //设置打印样式
  755. var strFormHtml = strBodyStyle + '<body>' + document.getElementById('commmon').innerHTML + '</body>' //获取打印内容
  756. LODOP.PRINT_INIT('') //初始化
  757. LODOP.PRINT_DESIGN();
  758. //LODOP.PREVIEW();
  759. //LODOP.PRINT();
  760. LODOP.SET_PRINT_PAGESIZE(2, 0, 0, 'A4') //设置横向
  761. LODOP.ADD_PRINT_HTM('1%', '1%', '98%', '98%', strFormHtml) //设置打印内容
  762. LODOP.SET_PREVIEW_WINDOW(2, 0, 0, 800, 600, '') //设置预览窗口模式和大小
  763. LODOP.PREVIEW()
  764. }
  765. },
  766. // 校验用户是否收藏
  767. favoriteIsOk(){
  768. let userFavorite ={
  769. userId:this.$store.state.user.id,
  770. languageCode:this.$i18n.locale
  771. }
  772. userFavoriteList(userFavorite).then(({data}) =>{
  773. let size = data.list.filter(item => item.menuId==this.$route.meta.menuId).length;
  774. if (size>0){
  775. this.favorite = true
  776. }else {
  777. this.favorite = false
  778. }
  779. })
  780. },
  781. // 收藏 OR 取消收藏
  782. favoriteFunction(){
  783. let userFavorite ={
  784. userId: this.$store.state.user.id,
  785. functionId: this.$route.meta.menuId,
  786. }
  787. if (this.favorite){
  788. // 取消收藏
  789. this.$confirm(`确定取消收藏`, '提示', {
  790. confirmButtonText: '确定',
  791. cancelButtonText: '取消',
  792. type: 'warning'
  793. }).then(() => {
  794. removeUserFavorite(userFavorite).then(({data})=>{
  795. this.$message.success(data.msg)
  796. this.favorite = false
  797. })
  798. })
  799. }else {
  800. // 收藏
  801. saveUserFavorite(userFavorite).then(({data})=>{
  802. this.$message.success(data.msg)
  803. this.favorite = true
  804. })
  805. }
  806. },
  807. // 保存语言编辑
  808. saveLanguageList(val) {
  809. saveSysLanguageOne(val).then(({data}) => {
  810. if (data.code == 0) {
  811. this.$message.success(data.msg)
  812. } else {
  813. this.$message.error(data.msg)
  814. }
  815. })
  816. },
  817. // 编辑语言
  818. addLanguageFun() {
  819. if (this.querySysLanguagePack.languageCode) {
  820. this.addLanguage = true
  821. this.languageColumnList = []
  822. let query = {
  823. functionId: 2101,
  824. tableId: "review2101",
  825. languageCode: this.$i18n.locale
  826. }
  827. getTableDefaultListLanguage(query).then(({data}) => {
  828. if (data.rows.length > 0) {
  829. this.languageColumnList = data.rows
  830. }
  831. })
  832. this.languageColumnList = this.columnList
  833. searchLanguageListByLanguageCode(this.querySysLanguagePack).then(({data}) => {
  834. this.languageDataList = data.rows
  835. })
  836. } else {
  837. this.$message("请选中一种语言")
  838. }
  839. },
  840. // 获取多语言列表
  841. getLanguageList() {
  842. searchSysLanguage(this.queryLanguage).then(({data}) => {
  843. this.languageList = data.rows
  844. })
  845. },
  846. // 获取button的词典
  847. getFunctionButtonList() {
  848. searchFunctionButtonList(this.queryButton).then(({data}) => {
  849. console.log(data.data)
  850. if (data.data.length > 0) {
  851. this.buttons = data.data
  852. } else {
  853. saveButtonList(this.buttonList).then(({data}) => {
  854. })
  855. }
  856. })
  857. },
  858. // 获取语言词典
  859. getSysLanguageParamList() {
  860. searchSysLanguageParam(this.querySysLanguageParam).then(({data}) => {
  861. this.sysLanguageParams = data.rows
  862. })
  863. },
  864. // 打开页面设置
  865. userSetting() {
  866. this.visible = true;
  867. let queryTable = {
  868. userId: this.$store.state.user.name,
  869. functionId: 2101,
  870. tableId: "review2101",
  871. languageCode: this.$i18n.locale
  872. }
  873. this.$nextTick(() => {
  874. this.$refs.column.init(queryTable);
  875. });
  876. },
  877. // 获取 用户保存的 格式列
  878. getTableUserColumn() {
  879. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  880. if (data != null && data.rows.length > 0) {
  881. //this.columnList = []
  882. this.columnList = data.rows
  883. } else {
  884. this.getColumnList()
  885. }
  886. })
  887. },
  888. // 保存 默认配置 列
  889. saveColumnList() {
  890. saveTableDefaultList(this.columnList).then(({data}) => {
  891. if (data.code == 0) {
  892. this.$message.success(data.msg)
  893. this.showDefault = false
  894. } else {
  895. this.$message.error(data.msg)
  896. }
  897. })
  898. saveTableDefaultList(this.columnList1).then(({data}) => {
  899. if (data.code == 0) {
  900. this.$message.success(data.msg)
  901. this.showDefault = false
  902. } else {
  903. this.$message.error(data.msg)
  904. }
  905. })
  906. this.getFunctionButtonList();
  907. this.getColumnList()
  908. },
  909. // 获取 tableDefault 列
  910. getColumnList() {
  911. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  912. if (data != null && !data.rows.length == 0) {
  913. this.showDefault = false
  914. this.columnList = data.rows
  915. } else {
  916. this.showDefault = true
  917. }
  918. })
  919. },
  920. // 获取数据列表
  921. getDataList(val) {
  922. this.dataListLoading = true
  923. if (val == 'Y') {
  924. this.pageIndex = 1
  925. }
  926. this.mainQueryData.limit = this.pageSize
  927. this.mainQueryData.page = this.pageIndex
  928. getPRHeaderList(this.mainQueryData).then(({data}) => {
  929. if (data && data.code === 0) {
  930. this.dataList = data.rows.list
  931. this.totalPage = data.rows.totalCount
  932. } else {
  933. this.dataList = []
  934. this.totalPage = 0
  935. }
  936. this.dataListLoading = false
  937. })
  938. },
  939. // 每页数
  940. sizeChangeHandle(val) {
  941. this.pageSize = val
  942. this.pageIndex = 1
  943. this.getDataList()
  944. },
  945. // 当前页
  946. currentChangeHandle(val) {
  947. this.pageIndex = val
  948. this.getDataList()
  949. },
  950. // 多选
  951. selectionChangeHandle(val) {
  952. this.dataListSelections = val
  953. },
  954. // 删除
  955. deleteHandle(id) {
  956. var ids = id ? [id] : this.dataListSelections.map(item => {
  957. return item.id
  958. })
  959. this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
  960. confirmButtonText: '确定',
  961. cancelButtonText: '取消',
  962. type: 'warning'
  963. }).then(() => {
  964. this.$http({
  965. url: this.$http.adornUrl('//prd/delete'),
  966. method: 'post',
  967. data: this.$http.adornData(ids, false)
  968. }).then(({data}) => {
  969. if (data && data.code === 0) {
  970. this.$message({
  971. message: '操作成功',
  972. type: 'success',
  973. duration: 1500,
  974. onClose: () => {
  975. this.getDataList()
  976. }
  977. })
  978. } else {
  979. this.$message.error(data.msg)
  980. }
  981. })
  982. })
  983. },
  984. createExportData() {
  985. // 点击导出按钮之后,开始导出数据之前的执行函数,返回值为需要下载的数据
  986. // TODO:构造需要下载的数据返回
  987. getExportList(this.mainQueryData).then(({data}) => {
  988. if (data && data.code === 0) {
  989. return data.rows.list
  990. }
  991. return this.dataList;
  992. })
  993. },
  994. startDownload() {
  995. // this.exportData = this.dataList
  996. console.log("数据开始")
  997. },
  998. finishDownload() {
  999. console.log("数据下载完成")
  1000. },
  1001. fields() {
  1002. console.log(this.columnList)
  1003. let json = "{"
  1004. this.columnList.forEach((item, index) => {
  1005. if (index == this.columnList.length - 1) {
  1006. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1007. } else {
  1008. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1009. }
  1010. })
  1011. json += "}"
  1012. let s = eval("(" + json + ")")
  1013. console.log(s)
  1014. return s
  1015. },
  1016. },
  1017. created() {
  1018. this.getTableUserColumn()
  1019. this.getSysLanguageParamList()
  1020. this.getFunctionButtonList()
  1021. this.favoriteIsOk()
  1022. }
  1023. }
  1024. </script>
  1025. <style scoped>
  1026. .wrapper {
  1027. height: calc(100% - 40px);
  1028. }
  1029. .sl-input {
  1030. background-color: transparent;
  1031. border: 0 !important;
  1032. font-size: 12px !important;
  1033. height: 12px !important;
  1034. line-height: 14px !important;
  1035. background-color: transparent !important;
  1036. width: 140px;
  1037. }
  1038. .sl-input:focus, textarea:focus {
  1039. outline: none;
  1040. }
  1041. .sl-svg {
  1042. overflow: hidden;
  1043. float: right;
  1044. }
  1045. </style>