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.

1213 lines
37 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year 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. <!-- 条件查询 -->
  9. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  10. <el-form-item :label="'BU'">
  11. <el-select v-model="searchData.buNo" placeholder="请选择" clearable style="width: 100px">
  12. <el-option
  13. v-for = "i in buList"
  14. :key = "i.buNo"
  15. :label = "i.buDesc"
  16. :value = "i.buNo">
  17. </el-option>
  18. </el-select>
  19. </el-form-item>
  20. <el-form-item :label="'人工等级编码'">
  21. <el-input v-model="searchData.classNo" clearable style="width: 120px"></el-input>
  22. </el-form-item>
  23. <el-form-item :label="'人工等级名称'">
  24. <el-input v-model="searchData.classDesc" clearable style="width: 200px"></el-input>
  25. </el-form-item>
  26. <el-form-item label="是否在用">
  27. <el-select v-model="searchData.active" clearable placeholder="请选择" style="width: 100px">
  28. <el-option label="是" value="Y"></el-option>
  29. <el-option label="否" value="N"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item :label="' '">
  33. <el-button v-if="!authSearch" type="primary" @click="getDataList()">查询</el-button>
  34. <el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
  35. <download-excel
  36. :fields="fields()"
  37. :data="exportData"
  38. type="xls"
  39. :name="exportName"
  40. :header="exportHeader"
  41. :footer="exportFooter"
  42. :fetch="createExportData"
  43. :before-generate="startDownload"
  44. :before-finish="finishDownload"
  45. worksheet="导出信息"
  46. class="el-button el-button--primary el-button--medium">
  47. {{ "导出" }}
  48. </download-excel>
  49. </el-form-item>
  50. </el-form>
  51. <!-- 展示列表 -->
  52. <el-table
  53. :height="height"
  54. :data="dataList"
  55. ref="laborClassTable"
  56. @row-click="laborClassClickRow"
  57. border
  58. style="width: 100%;">
  59. <el-table-column
  60. v-for="(item,index) in columnList" :key="index"
  61. :sortable="item.columnSortable"
  62. :prop="item.columnProp"
  63. :header-align="item.headerAlign"
  64. :show-overflow-tooltip="item.showOverflowTooltip"
  65. :align="item.align"
  66. :fixed="item.fixed==''?false:item.fixed"
  67. :min-width="item.columnWidth"
  68. :label="item.columnLabel">
  69. <template slot-scope="scope">
  70. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  71. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  72. </template>
  73. </el-table-column>
  74. <el-table-column
  75. fixed="right"
  76. header-align="center"
  77. align="center"
  78. width="100"
  79. label="操作">
  80. <template slot-scope="scope">
  81. <a type="text" size="small" @click="updateModal(scope.row)">修改</a>
  82. <a type="text" size="small" @click="deleteModal(scope.row)">删除</a>
  83. </template>
  84. </el-table-column>
  85. </el-table>
  86. <el-pagination
  87. @size-change="sizeChangeHandle"
  88. @current-change="currentChangeHandle"
  89. :current-page="pageIndex"
  90. :page-sizes="[20, 50, 100, 200, 500]"
  91. :page-size="pageSize"
  92. :total="totalPage"
  93. layout="total, sizes, prev, pager, next, jumper">
  94. </el-pagination>
  95. <el-dialog title="人工等级" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="450px">
  96. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: -5px;">
  97. <el-form-item label="BU" prop="bu" :rules="rules.bu">
  98. <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 75px">
  99. <el-option
  100. v-for = "i in userBuList"
  101. :key = "i.buNo"
  102. :label = "i.buDesc"
  103. :value = "i.buNo">
  104. </el-option>
  105. </el-select>
  106. </el-form-item>
  107. <el-form-item label="是否在用" prop="active">
  108. <el-select v-model="modalData.active" placeholder="请选择" style="width: 70px">
  109. <el-option label="是" value="Y"></el-option>
  110. <el-option label="否" value="N"></el-option>
  111. </el-select>
  112. </el-form-item>
  113. </el-form>
  114. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
  115. <el-form-item label="人工等级编码" prop="classNo">
  116. <el-input v-model="modalData.classNo" :disabled="modalDisableFlag" style="width: 158px"></el-input>
  117. </el-form-item>
  118. <el-form-item label="人工等级名称" prop="classDesc">
  119. <el-input v-model="modalData.classDesc" style="width: 246px"></el-input>
  120. </el-form-item>
  121. </el-form>
  122. <el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;">
  123. <el-form-item label="备注" style="height: 80px">
  124. <el-input type="textarea" v-model="modalData.remark" :rows="3" resize='none' show-word-limit style="width: 418px"></el-input>
  125. </el-form-item>
  126. </el-form>
  127. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  128. <el-button type="primary" @click="saveData()">保存</el-button>
  129. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  130. </el-footer>
  131. </el-dialog>
  132. <el-tabs v-model="activeName" style="width: 100%" :style="{height: secondHeight + 'px'}" type="border-card" @tab-click="tabClick" class="customer-tab">
  133. <el-tab-pane label="详情" name="detail">
  134. <el-form label-position="top" :model="dataList1" style="margin-left: 10px;margin-top: 5px;margin-right: 10px">
  135. <el-row :gutter="10">
  136. <el-col :span="4">
  137. <div class="grid-content bg-purple">
  138. <el-form-item :label="'人工等级编码'">
  139. <el-input v-model="dataList1.classNo" readonly></el-input>
  140. </el-form-item>
  141. </div>
  142. </el-col>
  143. <el-col :span="10">
  144. <div class="grid-content bg-purple">
  145. <el-form-item :label="'人工等级名称'">
  146. <el-input v-model="dataList1.classDesc" readonly></el-input>
  147. </el-form-item>
  148. </div>
  149. </el-col>
  150. <el-col :span="2">
  151. <div class="grid-content bg-purple">
  152. <el-form-item :label="'是否在用'">
  153. <el-input v-model="dataList1.activeDesc" readonly></el-input>
  154. </el-form-item>
  155. </div>
  156. </el-col>
  157. </el-row>
  158. <el-row :gutter="10">
  159. <el-col :span="4">
  160. <div class="grid-content bg-purple">
  161. <el-form-item :label="'创建人'">
  162. <el-input v-model="dataList1.createdBy" readonly></el-input>
  163. </el-form-item>
  164. </div>
  165. </el-col>
  166. <el-col :span="4">
  167. <div class="grid-content bg-purple">
  168. <el-form-item :label="'创建时间'">
  169. <el-input v-model="dataList1.createdDate" readonly></el-input>
  170. </el-form-item>
  171. </div>
  172. </el-col>
  173. <el-col :span="4">
  174. <div class="grid-content bg-purple">
  175. <el-form-item :label="'修改人'">
  176. <el-input v-model="dataList1.updatedBy" readonly></el-input>
  177. </el-form-item>
  178. </div>
  179. </el-col>
  180. <el-col :span="4">
  181. <div class="grid-content bg-purple">
  182. <el-form-item :label="'修改时间'">
  183. <el-input v-model="dataList1.updatedDate" readonly></el-input>
  184. </el-form-item>
  185. </div>
  186. </el-col>
  187. </el-row>
  188. <el-row :gutter="10">
  189. <el-col :span="16">
  190. <div class="grid-content bg-purple">
  191. <el-form-item label="备注" style="height: 80px">
  192. <el-input type="textarea" v-model="dataList1.remark" readonly :rows="3" resize='none' show-word-limit></el-input>
  193. </el-form-item>
  194. </div>
  195. </el-col>
  196. </el-row>
  197. </el-form>
  198. </el-tab-pane>
  199. <el-tab-pane label="成本" name="cost">
  200. <div style="margin-left: 5px;margin-top: 5px">
  201. <el-button v-if="!authSave" type="primary" @click="addModal1()">新增</el-button>
  202. </div>
  203. <el-table
  204. :data="dataList2"
  205. :height="secondHeight - 54"
  206. border
  207. style="width: 100%;margin-top: 5px">
  208. <el-table-column
  209. v-for="(item,index) in columnList2" :key="index"
  210. :sortable="item.columnSortable"
  211. :prop="item.columnProp"
  212. :header-align="item.headerAlign"
  213. :show-overflow-tooltip="item.showOverflowTooltip"
  214. :align="item.align"
  215. :fixed="item.fixed==''?false:item.fixed"
  216. :min-width="item.columnWidth"
  217. :label="item.columnLabel">
  218. <template slot-scope="scope">
  219. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  220. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  221. </template>
  222. </el-table-column>
  223. <el-table-column
  224. header-align="center"
  225. align="center"
  226. width="100"
  227. label="操作">
  228. <template slot-scope="scope">
  229. <a type="text" size="small" @click="updateModal1(scope.row)">修改</a>
  230. <a type="text" size="small" @click="deleteModal1(scope.row)">删除</a>
  231. </template>
  232. </el-table-column>
  233. </el-table>
  234. </el-tab-pane>
  235. </el-tabs>
  236. <!-- 成本新增和修改 -->
  237. <el-dialog title="成本" :close-on-click-modal="false" v-drag :visible.sync="modalFlag1" width="500px">
  238. <el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1" style="margin-top: -5px;">
  239. <el-form-item label="单位制造费用成本:" prop="overheadCost">
  240. <el-input-number :controls="false" :step="0" min="0" v-model="modalData1.overheadCost" style="width: 225px"></el-input-number>
  241. </el-form-item>
  242. <el-form-item label="单位人工成本:" prop="unitCost">
  243. <el-input-number :controls="false" :step="0" min="0" v-model="modalData1.unitCost" style="width: 225px"></el-input-number>
  244. </el-form-item>
  245. </el-form>
  246. <el-form :inline="true" label-position="top" :model="modalData1" :rules="rules1">
  247. <el-form-item :label="'启用日期'" prop="beginDate">
  248. <el-date-picker
  249. style="width: 225px"
  250. v-model="modalData1.beginDate"
  251. type="date"
  252. value-format="yyyy-MM-dd"
  253. placeholder="选择日期">
  254. </el-date-picker>
  255. </el-form-item>
  256. <el-form-item :label="'结束日期'" >
  257. <el-date-picker
  258. style="width: 225px"
  259. v-model="modalData1.endDate"
  260. type="date"
  261. value-format="yyyy-MM-dd"
  262. placeholder="选择日期">
  263. </el-date-picker>
  264. </el-form-item>
  265. </el-form>
  266. <el-form :inline="true" label-position="top" :model="modalData" style="margin-top: -5px;">
  267. <el-form-item label="备注" style="height: 80px">
  268. <el-input type="textarea" v-model="modalData1.remark" :rows="3" resize='none' show-word-limit style="width: 467px"></el-input>
  269. </el-form-item>
  270. </el-form>
  271. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  272. <el-button type="primary" @click="saveData1()">保存</el-button>
  273. <el-button type="primary" @click="modalFlag1 = false">关闭</el-button>
  274. </el-footer>
  275. </el-dialog>
  276. </div>
  277. </template>
  278. <script>
  279. import {
  280. findAll, //查询人工等级
  281. insertByLabor,//新增人工等级
  282. updateLabor,//修改人工等级
  283. deleteLabor,//删除人工等级
  284. findByLabor,//查询(获取单个详情数据)
  285. appendByLaborClass,//成本新增
  286. queryByLaborClass, //成本查询
  287. amendByLaborClass,//成本修改
  288. deleteByLaborClass,//删除成本
  289. } from "@/api/fanucGroup/labor.js"
  290. import {getSiteAndBuByUserName, getSiteAndBuByUserName2} from "@/api/qc/qc.js"
  291. import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"
  292. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  293. export default {
  294. data () {
  295. return {
  296. activeName:'detail',
  297. currentRow:'',
  298. currentRow2:'',
  299. headerData2:'',
  300. // 是否收藏
  301. favorite: false,
  302. // 导出 start
  303. exportData: [],
  304. exportName: "检验方法" + this.dayjs().format('YYYYMMDDHHmmss'),
  305. exportHeader: ["检验方法"],
  306. exportFooter: [],
  307. exportList: [],
  308. buList: [],
  309. // 导出 end
  310. searchData: {
  311. site: '',
  312. buNo: '',
  313. userName: this.$store.state.user.name,
  314. classNo: '',
  315. classDesc: '',
  316. active: '',
  317. page: 1,
  318. limit: 10,
  319. },
  320. pageIndex: 1,
  321. pageSize: 20,
  322. totalPage: 0,
  323. height: 200,
  324. secondHeight: 200,
  325. dataList: [],
  326. dataList1: {
  327. site: '',
  328. buNo: '',
  329. classNo: '',
  330. classDesc: '',
  331. active: '',
  332. createdDate: '',
  333. createdBy: '',
  334. updatedDate: '',
  335. updatedBy: '',
  336. remark: '',
  337. },
  338. dataList2:[],
  339. dataListLoading: false,
  340. modalFlag: false,
  341. modalFlag1: false,
  342. modalDisableFlag: false,
  343. modalDisableFlag1: false,
  344. modalData: {
  345. site: '',
  346. id: '',
  347. bu: '',
  348. buNo: '',
  349. classNo: '',
  350. classDesc: '',
  351. active: '',
  352. createdDate: '',
  353. createdBy: '',
  354. updatedDate: '',
  355. updatedBy: '',
  356. remark: '',
  357. },
  358. modalData1:{
  359. site: '',
  360. classNo: '',
  361. itemNo: '',
  362. unitCost: '',
  363. overheadCost: '',
  364. umId: '',
  365. beginDate: '',
  366. endDate: '',
  367. remark: '',
  368. laborClassId: '',
  369. },
  370. // 标头展示
  371. columnList: [
  372. {
  373. userId: this.$store.state.user.name,
  374. functionId: 501003,
  375. serialNumber: '501003TableBuNo',
  376. tableId: "501003Table",
  377. tableName: "人工等级",
  378. columnWidth: 100,
  379. columnProp: 'buDesc',
  380. headerAlign: 'center',
  381. align: "center",
  382. columnLabel: 'BU',
  383. columnHidden: false,
  384. columnImage: false,
  385. columnSortable: false,
  386. sortLv: 0,
  387. status: true,
  388. fixed: '',
  389. },
  390. {
  391. userId: this.$store.state.user.name,
  392. functionId: 501003,
  393. serialNumber: '501003TableClassNo',
  394. tableId: "501003Table",
  395. tableName: "人工等级",
  396. columnWidth: 120,
  397. columnProp: 'classNo',
  398. headerAlign: 'center',
  399. align: "left",
  400. columnLabel: '人工等级编码',
  401. columnHidden: false,
  402. columnImage: false,
  403. columnSortable: false,
  404. sortLv: 0,
  405. status: true,
  406. fixed: '',
  407. },
  408. {
  409. userId: this.$store.state.user.name,
  410. functionId: 501003,
  411. serialNumber: '501003TableClassDesc',
  412. tableId: "501003Table",
  413. tableName: "人工等级",
  414. columnWidth: 200,
  415. columnProp: 'classDesc',
  416. headerAlign: 'center',
  417. align: "left",
  418. columnLabel: '人工等级名称',
  419. columnHidden: false,
  420. columnImage: false,
  421. columnSortable: false,
  422. sortLv: 0,
  423. status: true,
  424. fixed: '',
  425. },
  426. {
  427. userId: this.$store.state.user.name,
  428. functionId: 501003,
  429. serialNumber: '501003TableActive',
  430. tableId: "501003Table",
  431. tableName: "人工等级",
  432. columnWidth: 100,
  433. columnProp: 'activeDesc',
  434. headerAlign: 'center',
  435. align: "center",
  436. columnLabel: '是否在用',
  437. columnHidden: false,
  438. columnImage: false,
  439. columnSortable: false,
  440. sortLv: 0,
  441. status: true,
  442. fixed: '',
  443. },
  444. {
  445. userId: this.$store.state.user.name,
  446. functionId: 501003,
  447. serialNumber: '501003TableRemark',
  448. tableId: "501003Table",
  449. tableName: "人工等级",
  450. columnWidth: 200,
  451. columnProp: 'remark',
  452. headerAlign: 'center',
  453. align: "left",
  454. columnLabel: '备注',
  455. columnHidden: false,
  456. columnImage: false,
  457. columnSortable: false,
  458. sortLv: 0,
  459. status: true,
  460. fixed: '',
  461. },
  462. {
  463. userId: this.$store.state.user.name,
  464. functionId: 501003,
  465. serialNumber: '501003TableCreatedDate',
  466. tableId: "501003Table",
  467. tableName: "人工等级",
  468. columnWidth: 160,
  469. columnProp: 'createdDate',
  470. headerAlign: 'center',
  471. align: "center",
  472. columnLabel: '创建时间',
  473. columnHidden: false,
  474. columnImage: false,
  475. columnSortable: false,
  476. sortLv: 0,
  477. status: true,
  478. fixed: '',
  479. },
  480. {
  481. userId: this.$store.state.user.name,
  482. functionId: 501003,
  483. serialNumber: '501003TableCreatedBy',
  484. tableId: "501003Table",
  485. tableName: "人工等级",
  486. columnWidth: 100,
  487. columnProp: 'createdBy',
  488. headerAlign: 'center',
  489. align: "left",
  490. columnLabel: '创建人',
  491. columnHidden: false,
  492. columnImage: false,
  493. columnSortable: false,
  494. sortLv: 0,
  495. status: true,
  496. fixed: '',
  497. },
  498. {
  499. userId: this.$store.state.user.name,
  500. functionId: 501003,
  501. serialNumber: '501003TableUpdatedDate',
  502. tableId: "501003Table",
  503. tableName: "人工等级",
  504. columnWidth: 160,
  505. columnProp: 'updatedDate',
  506. headerAlign: 'center',
  507. align: "center",
  508. columnLabel: '修改时间',
  509. columnHidden: false,
  510. columnImage: false,
  511. columnSortable: false,
  512. sortLv: 0,
  513. status: true,
  514. fixed: '',
  515. },
  516. {
  517. userId: this.$store.state.user.name,
  518. functionId: 501003,
  519. serialNumber: '501003TableUpdatedBy',
  520. tableId: "501003Table",
  521. tableName: "人工等级",
  522. columnWidth: 100,
  523. columnProp: 'updatedBy',
  524. headerAlign: 'center',
  525. align: "left",
  526. columnLabel: '修改人',
  527. columnHidden: false,
  528. columnImage: false,
  529. columnSortable: false,
  530. sortLv: 0,
  531. status: true,
  532. fixed: '',
  533. },
  534. ],
  535. columnList2: [
  536. {
  537. userId: this.$store.state.user.name,
  538. functionId: 501003,
  539. serialNumber: '501003TableItemNo',
  540. tableId: "501003Table",
  541. tableName: "成本",
  542. columnWidth: 100,
  543. columnProp: 'itemNo',
  544. headerAlign: 'center',
  545. align: "right",
  546. columnLabel: '序号',
  547. columnHidden: false,
  548. columnImage: false,
  549. columnSortable: false,
  550. sortLv: 0,
  551. status: true,
  552. fixed: '',
  553. },
  554. {
  555. userId: this.$store.state.user.name,
  556. functionId: 501003,
  557. serialNumber: '501003TableUnitCost',
  558. tableId: "501003Table",
  559. tableName: "成本",
  560. columnWidth: 100,
  561. columnProp: 'unitCost',
  562. headerAlign: 'center',
  563. align: "right",
  564. columnLabel: '单位人工成本',
  565. columnHidden: false,
  566. columnImage: false,
  567. columnSortable: false,
  568. sortLv: 0,
  569. status: true,
  570. fixed: '',
  571. },
  572. {
  573. userId: this.$store.state.user.name,
  574. functionId: 501003,
  575. serialNumber: '501003TableOverheadCost',
  576. tableId: "501003Table",
  577. tableName: "成本",
  578. columnWidth: 100,
  579. columnProp: 'overheadCost',
  580. headerAlign: 'center',
  581. align: "right",
  582. columnLabel: '单位制造费用成本',
  583. columnHidden: false,
  584. columnImage: false,
  585. columnSortable: false,
  586. sortLv: 0,
  587. status: true,
  588. fixed: '',
  589. },
  590. {
  591. userId: this.$store.state.user.name,
  592. functionId: 501003,
  593. serialNumber: '501003TableBeginDate',
  594. tableId: "501003Table",
  595. tableName: "成本",
  596. columnWidth: 150,
  597. columnProp: 'beginDate',
  598. headerAlign: 'center',
  599. align: "center",
  600. columnLabel: '启用日期',
  601. columnHidden: false,
  602. columnImage: false,
  603. columnSortable: false,
  604. sortLv: 0,
  605. status: true,
  606. fixed: '',
  607. },
  608. {
  609. userId: this.$store.state.user.name,
  610. functionId: 501003,
  611. serialNumber: '501003TableEndDate',
  612. tableId: "501003Table",
  613. tableName: "成本",
  614. columnWidth: 150,
  615. columnProp: 'endDate',
  616. headerAlign: 'center',
  617. align: "center",
  618. columnLabel: '结束日期',
  619. columnHidden: false,
  620. columnImage: false,
  621. columnSortable: false,
  622. sortLv: 0,
  623. status: true,
  624. fixed: '',
  625. },
  626. {
  627. userId: this.$store.state.user.name,
  628. functionId: 501003,
  629. serialNumber: '501003TableRemark',
  630. tableId: "501003Table",
  631. tableName: "成本",
  632. columnWidth: 200,
  633. columnProp: 'remark',
  634. headerAlign: 'center',
  635. align: "left",
  636. columnLabel: '备注',
  637. columnHidden: false,
  638. columnImage: false,
  639. columnSortable: false,
  640. sortLv: 0,
  641. status: true,
  642. fixed: '',
  643. },
  644. ],
  645. rules: {
  646. classNo: [
  647. {
  648. required: true,
  649. message: ' ',
  650. trigger: ['blur', 'change']
  651. }
  652. ],
  653. bu: [
  654. {
  655. required: true,
  656. message: ' ',
  657. trigger: ['blur', 'change']
  658. }
  659. ],
  660. },
  661. rules1: {
  662. overheadCost: [
  663. {
  664. required: true,
  665. message: ' ',
  666. trigger: ['blur', 'change']
  667. }
  668. ],
  669. unitCost: [
  670. {
  671. required: true,
  672. message: ' ',
  673. trigger: ['blur', 'change']
  674. }
  675. ],
  676. beginDate: [
  677. {
  678. required: true,
  679. message: ' ',
  680. trigger: ['blur', 'change']
  681. }
  682. ]
  683. },
  684. options: [],
  685. userBuList: [],
  686. authSearch: false,
  687. authSave: false,
  688. authUpdate: false,
  689. authDelete: false,
  690. menuId: this.$route.meta.menuId,
  691. }
  692. },
  693. mounted () {
  694. this.$nextTick(() => {
  695. this.height = window.innerHeight / 2 - 30
  696. /*第二个表格高度的动态调整*/
  697. this.secondHeight = window.innerHeight - this.height - 175
  698. })
  699. },
  700. //编码自动转化成大写
  701. watch: {
  702. modalData: {
  703. deep: true,
  704. handler: function (newV, oldV) {
  705. this.modalData.classNo = this.modalData.classNo.toUpperCase()
  706. }
  707. }
  708. },
  709. created () {
  710. //页面在加载的时候就调用查询方法
  711. this.getDataList()
  712. // 获取用户的 site 和 bu
  713. this.getSiteAndBuByUserName()
  714. // 获取用户的 site 和 bu
  715. this.getSiteAndBuByUserName2()
  716. },
  717. methods: {
  718. // 获取用户的bu
  719. getSiteAndBuByUserName2 () {
  720. let tempData = {
  721. username: this.$store.state.user.name,
  722. }
  723. getSiteAndBuByUserName2(tempData).then(({data}) => {
  724. if (data.code === 0) {
  725. this.buList = data.rows
  726. }
  727. })
  728. },
  729. // 获取用户的bu
  730. getSiteAndBuByUserName () {
  731. let tempData = {
  732. username: this.$store.state.user.name,
  733. }
  734. getSiteAndBuByUserName(tempData).then(({data}) => {
  735. if (data.code === 0) {
  736. this.userBuList = data.rows
  737. }
  738. })
  739. },
  740. formatDate(date) {
  741. const year = date.getFullYear();
  742. const month = (date.getMonth() + 1).toString().padStart(2, '0');
  743. const day = date.getDate().toString().padStart(2, '0');
  744. // const hours = date.getHours().toString().padStart(2, '0');
  745. // const minutes = date.getMinutes().toString().padStart(2, '0');
  746. // const seconds = date.getSeconds().toString().padStart(2, '0');
  747. // return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  748. return `${year}-${month}-${day}`;
  749. },
  750. validateInput () {
  751. // 只保留数字
  752. this.inputValue = this.inputValue.replace(/\D/g, '');
  753. },
  754. // 查询获取数据列表
  755. getDataList () {
  756. this.searchData.limit = this.pageSize
  757. this.searchData.page = this.pageIndex
  758. findAll(this.searchData).then(({data}) => {
  759. if (data.code === 0) {
  760. this.dataList = data.page.list
  761. this.pageIndex = data.page.currPage
  762. this.pageSize = data.page.pageSize
  763. this.totalPage = data.page.totalCount
  764. // 判断是否全部存在数据
  765. if (this.dataList.length > 0) {
  766. // 设置选中行
  767. this.$refs.laborClassTable.setCurrentRow(this.dataList[0])
  768. this.laborClassClickRow(this.dataList[0])
  769. } else {
  770. this.currentRow = {}
  771. }
  772. }
  773. })
  774. },
  775. // 每页数
  776. sizeChangeHandle (val) {
  777. this.pageSize = val
  778. this.pageIndex = 1
  779. this.getDataList()
  780. },
  781. // 当前页
  782. currentChangeHandle (val) {
  783. this.pageIndex = val
  784. this.getDataList()
  785. },
  786. //页签二插查询
  787. tabClick (tab, event) {
  788. // 刷新列表数据
  789. if (this.activeName === 'cost') {
  790. this.refreshCurrentTabTable2()
  791. }
  792. },
  793. laborClassClickRow (row) {
  794. this.currentRow = JSON.parse(JSON.stringify(row))
  795. this.dataList1 = this.currentRow
  796. this.refreshCurrentTabTable2()
  797. },
  798. // refreshCurrentTabTable () {
  799. // findByLabor(this.currentRow).then(({data}) => {
  800. // //区分请求成功和失败的状况
  801. // if (data && data.code === 0) {
  802. // this.dataList1 = data.rows[0]
  803. // } else {
  804. // this.dataList1 = [];
  805. // }
  806. // });
  807. // },
  808. refreshCurrentTabTable2(){
  809. queryByLaborClass(this.currentRow).then(({data}) => {
  810. //区分请求成功和失败的状况
  811. if (data && data.code === 0) {
  812. this.dataList2 = data.rows
  813. } else {
  814. this.dataList2 = []
  815. }
  816. });
  817. },
  818. //人工等级
  819. // 新增按钮
  820. addModal () {
  821. this.modalData = {
  822. flag: '1',
  823. site: '',
  824. buNo: '',
  825. bu: this.userBuList[0].buNo,
  826. classNo: '',
  827. classDesc: '',
  828. active: 'Y',
  829. createdDate: '',
  830. createdBy: this.$store.state.user.name,
  831. updatedDate: '',
  832. updatedBy: '',
  833. remark: '',
  834. }
  835. this.modalDisableFlag = false
  836. this.modalFlag = true
  837. },
  838. // 修改按钮
  839. updateModal (row) {
  840. this.modalData = {
  841. flag: '2',
  842. id: row.id,
  843. bu: row.site + '_' + row.buNo,
  844. site: row.site,
  845. buNo: row.buNo,
  846. classNo: row.classNo,
  847. classDesc: row.classDesc,
  848. active: row.active,
  849. createdDate: row.createdDate,
  850. createdBy: row.createdBy,
  851. updatedDate: '',
  852. updatedBy: this.$store.state.user.name,
  853. remark: row.remark,
  854. }
  855. this.modalDisableFlag = true
  856. this.modalFlag = true
  857. },
  858. saveData () {
  859. if (this.modalData.bu === '' || this.modalData.bu == null) {
  860. this.$message.warning('请选择BU!')
  861. return
  862. }
  863. if (this.modalData.classNo === '' || this.modalData.classNo == null) {
  864. this.$message.warning('请填写人工等级编码!')
  865. return
  866. }
  867. if (this.modalData.classDesc === '' || this.modalData.classDesc == null) {
  868. this.$message.warning('请填写人工等级名称!')
  869. return
  870. }
  871. if (this.modalData.flag === '1') { // 新增
  872. insertByLabor(this.modalData).then(({data}) => {
  873. if (data && data.code === 0) {
  874. this.getDataList()
  875. this.modalFlag = false
  876. this.$message({
  877. message: '操作成功',
  878. type: 'success',
  879. duration: 1500,
  880. onClose: () => {
  881. }
  882. })
  883. } else {
  884. this.$alert(data.msg, '错误', {
  885. confirmButtonText: '确定'
  886. })
  887. }
  888. })
  889. } else { // 修改
  890. updateLabor(this.modalData).then(({data}) => {
  891. if (data && data.code === 0) {
  892. this.getDataList()
  893. this.modalFlag = false
  894. this.$message({
  895. message: '操作成功',
  896. type: 'success',
  897. duration: 1500,
  898. onClose: () => {
  899. }
  900. })
  901. } else {
  902. this.$alert(data.msg, '错误', {
  903. confirmButtonText: '确定'
  904. })
  905. }
  906. })
  907. }
  908. },
  909. deleteModal (row) {
  910. this.$confirm(`是否删除此数据?`, '提示', {
  911. confirmButtonText: '确定',
  912. cancelButtonText: '取消',
  913. type: 'warning'
  914. }).then(() => {
  915. deleteLabor(row).then(({data}) => {
  916. if (data && data.code === 0) {
  917. this.getDataList()
  918. this.$message({
  919. message: '操作成功',
  920. type: 'success',
  921. duration: 1500,
  922. onClose: () => {
  923. }
  924. })
  925. } else {
  926. this.$alert(data.msg, '错误', {
  927. confirmButtonText: '确定'
  928. })
  929. }
  930. })
  931. })
  932. },
  933. //成本
  934. // 新增按钮
  935. addModal1 () {
  936. this.modalData1 = {
  937. flag1: '1',
  938. site: this.currentRow.site,
  939. buNo: this.currentRow.buNo,
  940. classNo: this.currentRow.classNo,
  941. itemNo: '',
  942. unitCost: '',
  943. overheadCost: '',
  944. umId: '',
  945. beginDate: this.formatDate(new Date()),
  946. endDate: '',
  947. remark: '',
  948. }
  949. this.modalDisableFlag1 = false
  950. this.modalFlag1 = true
  951. },
  952. // 修改按钮
  953. updateModal1 (row) {
  954. this.modalData1 = {
  955. flag1: '2',
  956. site: this.currentRow.site,
  957. buNo: this.currentRow.buNo,
  958. classNo: this.currentRow.classNo,
  959. itemNo: row.itemNo,
  960. unitCost: row.unitCost,
  961. overheadCost: row.overheadCost,
  962. umId: row.umid,
  963. beginDate: row.beginDate,
  964. endDate: row.endDate,
  965. remark: row.remark,
  966. }
  967. this.modalDisableFlag1 = true
  968. this.modalFlag1 = true
  969. },
  970. // 新增/修改方法
  971. saveData1 () {
  972. if (this.modalData1.beginDate === '' || this.modalData1.beginDate == null) {
  973. this.$message.warning('请选择启动日期!')
  974. return
  975. }
  976. if (this.modalData1.flag1 === '1') { // 新增
  977. appendByLaborClass(this.modalData1).then(({data}) => {
  978. if (data && data.code === 0) {
  979. this.refreshCurrentTabTable2()
  980. this.modalFlag1 = false
  981. this.$message({
  982. message: '操作成功',
  983. type: 'success',
  984. duration: 1500,
  985. onClose: () => {
  986. }
  987. })
  988. } else {
  989. this.$alert(data.msg, '错误', {
  990. confirmButtonText: '确定'
  991. })
  992. }
  993. })
  994. } else { // 修改
  995. amendByLaborClass(this.modalData1).then(({data}) => {
  996. if (data && data.code === 0) {
  997. this.refreshCurrentTabTable2()
  998. this.modalFlag1 = false
  999. this.$message({
  1000. message: '操作成功',
  1001. type: 'success',
  1002. duration: 1500,
  1003. onClose: () => {
  1004. }
  1005. })
  1006. } else {
  1007. this.$alert(data.msg, '错误', {
  1008. confirmButtonText: '确定'
  1009. })
  1010. }
  1011. })
  1012. }
  1013. },
  1014. // 删除方法
  1015. deleteModal1 (row) {
  1016. this.$confirm(`是否删除此数据?`, '提示', {
  1017. confirmButtonText: '确定',
  1018. cancelButtonText: '取消',
  1019. type: 'warning'
  1020. }).then(() => {
  1021. deleteByLaborClass(row).then(({data}) => {
  1022. if (data && data.code === 0) {
  1023. this.refreshCurrentTabTable2()
  1024. this.$message({
  1025. message: '操作成功',
  1026. type: 'success',
  1027. duration: 1500,
  1028. onClose: () => {
  1029. }
  1030. })
  1031. } else {
  1032. this.$alert(data.msg, '错误', {
  1033. confirmButtonText: '确定'
  1034. })
  1035. }
  1036. })
  1037. }).catch(() => {
  1038. })
  1039. },
  1040. // 校验用户是否收藏
  1041. favoriteIsOk () {
  1042. let userFavorite = {
  1043. userId: this.$store.state.user.id,
  1044. languageCode: this.$i18n.locale
  1045. }
  1046. userFavoriteList(userFavorite).then(({data}) => {
  1047. for (let i = 0; i < data.list.length; i++) {
  1048. if (this.$route.meta.menuId === data.list[i].menuId) {
  1049. this.favorite = true
  1050. }
  1051. }
  1052. })
  1053. },
  1054. // 收藏 OR 取消收藏
  1055. favoriteFunction () {
  1056. let userFavorite = {
  1057. userId: this.$store.state.user.id,
  1058. functionId: this.$route.meta.menuId,
  1059. }
  1060. if (this.favorite) {
  1061. removeUserFavorite(userFavorite).then(({data}) => {
  1062. this.$message.success(data.msg)
  1063. this.favorite = false
  1064. })
  1065. } else {
  1066. // 收藏
  1067. saveUserFavorite(userFavorite).then(({data}) => {
  1068. this.$message.success(data.msg)
  1069. this.favorite = true
  1070. })
  1071. }
  1072. },
  1073. //导出excel
  1074. async createExportData () {
  1075. this.searchData.limit = -1
  1076. this.searchData.page = 1
  1077. await findAll(this.searchData).then(({data}) => {
  1078. this.exportList = data.page.list
  1079. })
  1080. return this.exportList
  1081. },
  1082. startDownload () {
  1083. },
  1084. finishDownload () {
  1085. },
  1086. fields () {
  1087. let json = "{"
  1088. this.columnList.forEach((item, index) => {
  1089. if (index == this.columnList.length - 1) {
  1090. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1091. } else {
  1092. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1093. }
  1094. })
  1095. json += "}"
  1096. let s = eval("(" + json + ")")
  1097. return s
  1098. },
  1099. // 动态列开始 获取 用户保存的 格式列
  1100. async getTableUserColumn (tableId, columnId) {
  1101. let queryTableUser = {
  1102. userId: this.$store.state.user.name,
  1103. functionId: this.$route.meta.menuId,
  1104. tableId: tableId,
  1105. status: true,
  1106. languageCode: this.$i18n.locale
  1107. }
  1108. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  1109. if (data.rows.length > 0) {
  1110. switch (columnId) {
  1111. case 1:
  1112. this.columnList = data.rows
  1113. break;
  1114. }
  1115. } else {
  1116. this.getColumnList(tableId, columnId)
  1117. }
  1118. })
  1119. },
  1120. // 获取 tableDefault 列
  1121. async getColumnList (tableId, columnId) {
  1122. let queryTable = {
  1123. functionId: this.$route.meta.menuId,
  1124. tableId: tableId,
  1125. languageCode: this.$i18n.locale
  1126. }
  1127. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  1128. if (!data.rows.length === 0) {
  1129. switch (columnId) {
  1130. case 1:
  1131. this.columnList = data.rows
  1132. break;
  1133. }
  1134. } else {
  1135. // this.showDefault = true.
  1136. }
  1137. })
  1138. },
  1139. //获取按钮的权限数据
  1140. getButtonAuthData () {
  1141. let searchFlag = this.isAuth(this.menuId + ":search")
  1142. let saveFlag = this.isAuth(this.menuId + ":save")
  1143. let updateFlag = this.isAuth(this.menuId + ":update")
  1144. let deleteFlag = this.isAuth(this.menuId + ":delete")
  1145. //处理页面的权限数据
  1146. this.authSearch = !searchFlag
  1147. this.authSave = !saveFlag
  1148. this.authUpdate = !updateFlag
  1149. this.authDelete = !deleteFlag
  1150. },
  1151. }
  1152. }
  1153. </script>
  1154. <style scoped>
  1155. /deep/ .customer-tab .el-tabs__content {
  1156. padding: 0px !important;
  1157. height: 459px;
  1158. }
  1159. .numInput /deep/ .el-input__inner{
  1160. text-align: right;
  1161. }
  1162. /deep/ .inlineNumber input::-webkit-outer-spin-button,
  1163. /deep/ .inlineNumber input::-webkit-inner-spin-button {
  1164. -webkit-appearance: none;
  1165. }
  1166. /deep/ .inlineNumber input[type="number"]{
  1167. -moz-appearance: textfield;
  1168. padding-right: 5px !important;
  1169. }
  1170. </style>