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.

1477 lines
48 KiB

3 years ago
3 years ago
3 years ago
3 years ago
7 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
7 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
7 months ago
3 years ago
7 months ago
3 years ago
7 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" :model="searchData">
  4. <el-form-item label="BU">
  5. <el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 80px">
  6. <el-option
  7. v-for = "i in userBuList"
  8. :key = "i.buNo"
  9. :label = "i.buDesc"
  10. :value = "i.buDesc">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="维保模板编码">
  15. <el-input v-model="searchData.codeNo" clearable style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item label="维保模板名称">
  18. <el-input v-model="searchData.codeDesc" clearable style="width: 200px"></el-input>
  19. </el-form-item>
  20. <el-form-item label="在用">
  21. <el-select v-model="searchData.active" style="width: 80px">
  22. <el-option label="全部" value=""></el-option>
  23. <el-option label="是" value="Y"></el-option>
  24. <el-option label="否" value="N"></el-option>
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item label="是否被用">
  28. <el-select v-model="searchData.isUse" style="width: 80px">
  29. <el-option label="全部" value=""></el-option>
  30. <el-option label="是" value="Y"></el-option>
  31. <el-option label="否" value="N"></el-option>
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="部门">
  35. <el-select v-model="searchData.checkType" clearable style="width: 80px">
  36. <el-option label="生产" value="R022"></el-option>
  37. <el-option label="设备" value="R023"></el-option>
  38. <el-option label="质量" value="R024"></el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item label=" ">
  42. <el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
  43. <el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
  44. <el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button>
  45. <!-- <download-excel-->
  46. <!-- :fields="fields()"-->
  47. <!-- :data="exportData"-->
  48. <!-- type="xls"-->
  49. <!-- :name="exportName"-->
  50. <!-- :header="exportHeader"-->
  51. <!-- :footer="exportFooter"-->
  52. <!-- :fetch="createExportData"-->
  53. <!-- :before-generate="startDownload"-->
  54. <!-- :before-finish="finishDownload"-->
  55. <!-- worksheet="导出信息"-->
  56. <!-- class="el-button el-button&#45;&#45;primary el-button&#45;&#45;medium">-->
  57. <!-- {{ "导出" }}-->
  58. <!-- </download-excel>-->
  59. </el-form-item>
  60. </el-form>
  61. <el-table
  62. :height="height"
  63. :data="dataList"
  64. border
  65. v-loading="dataListLoading"
  66. style="width: 100%;">
  67. <el-table-column
  68. v-for="(item,index) in columnList" :key="index"
  69. :sortable="item.columnSortable"
  70. :prop="item.columnProp"
  71. :header-align="item.headerAlign"
  72. :show-overflow-tooltip="item.showOverflowTooltip"
  73. :align="item.align"
  74. :fixed="item.fixed==''?false:item.fixed"
  75. :min-width="item.columnWidth"
  76. :label="item.columnLabel">
  77. <template slot-scope="scope">
  78. <span v-if="!item.columnHidden">
  79. <span v-if="columnsProp.includes(item.columnProp)">{{ scope.row[`${item.columnProp}Desc`] }}</span>
  80. <span v-else>
  81. {{ scope.row[item.columnProp] }}
  82. </span>
  83. </span>
  84. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  85. </template>
  86. </el-table-column>
  87. <el-table-column
  88. fixed="right"
  89. header-align="center"
  90. align="center"
  91. width="160"
  92. label="操作">
  93. <template slot-scope="scope">
  94. <el-link style="cursor: pointer" v-if="!authUpdate" @click="updateModal(scope.row)">修改</el-link>
  95. <el-link style="cursor: pointer" @click="detailModal(scope.row)">维保项目</el-link>
  96. <el-link style="cursor: pointer" v-if="!authDelete" @click="deletePropertiesModel(scope.row)">删除</el-link>
  97. </template>
  98. </el-table-column>
  99. </el-table>
  100. <el-pagination
  101. @size-change="sizeChangeHandle"
  102. @current-change="currentChangeHandle"
  103. :current-page="pageIndex"
  104. :page-sizes="[20, 50, 100, 200, 500]"
  105. :page-size="pageSize"
  106. :total="totalPage"
  107. layout="total, sizes, prev, pager, next, jumper">
  108. </el-pagination>
  109. <el-dialog title="维保模板" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="460px">
  110. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  111. <el-form-item label="BU" prop="bu" :rules="rules.bu">
  112. <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 230px">
  113. <el-option
  114. v-for = "i in userBuList"
  115. :key = "i.buNo"
  116. :label = "i.sitename"
  117. :value = "i.buNo">
  118. <span style="float: left;width: 100px">{{ i.sitename }}</span>
  119. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  120. {{ i.buDesc }}
  121. </span>
  122. </el-option>
  123. </el-select>
  124. </el-form-item>
  125. <el-form-item label="部门" prop="checkType">
  126. <el-select v-model="modalData.checkType" :disabled="modalDisableFlag" style="width: 80px">
  127. <el-option label="生产" value="R022"></el-option>
  128. <el-option label="设备" value="R023"></el-option>
  129. <el-option label="质量" value="R024"></el-option>
  130. </el-select>
  131. </el-form-item>
  132. <el-form-item label="是否在用" prop="active" :rules="rules.activeType">
  133. <el-select filterable v-model="modalData.active" style="width: 80px">
  134. <el-option label="是" value="Y"></el-option>
  135. <el-option label="否" value="N"></el-option>
  136. </el-select>
  137. </el-form-item>
  138. </el-form>
  139. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;">
  140. <el-form-item label="维保模板编码" prop="codeNo" :rules="rules.codeNoType">
  141. <el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" style="width: 140px"></el-input>
  142. </el-form-item>
  143. <el-form-item label="维保模板名称" prop="codeDesc" :rules="rules.codeDescType">
  144. <el-input v-model="modalData.codeDesc" style="width: 264px"></el-input>
  145. </el-form-item>
  146. </el-form>
  147. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  148. <el-button type="primary" @click="saveData()">保存</el-button>
  149. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  150. </el-footer>
  151. </el-dialog>
  152. <el-dialog title="维保项目清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="987px">
  153. <el-form :inline="true" label-position="top">
  154. <el-form-item label="维保模板编码">
  155. <el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input>
  156. </el-form-item>
  157. <el-form-item label="维保模板名称">
  158. <el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input>
  159. </el-form-item>
  160. <el-form-item label=" ">
  161. <el-button type="primary" @click="addFastModal()">新增</el-button>
  162. <el-button type="primary" @click="goUp()">上移</el-button>
  163. <el-button type="primary" @click="goDown()">下移</el-button>
  164. </el-form-item>
  165. </el-form>
  166. <el-table
  167. :height="300"
  168. :data="detailList"
  169. border
  170. @row-click="itemClickRow"
  171. v-loading="dataListLoading"
  172. ref="detailTable"
  173. highlight-current-row
  174. style="width: 100%;">
  175. <el-table-column
  176. v-for="(item,index) in columnDetailList" :key="index"
  177. :sortable="item.columnSortable"
  178. :prop="item.columnProp"
  179. :header-align="item.headerAlign"
  180. :show-overflow-tooltip="item.showOverflowTooltip"
  181. :align="item.align"
  182. :fixed="item.fixed==''?false:item.fixed"
  183. :min-width="item.columnWidth"
  184. :label="item.columnLabel">
  185. <template slot-scope="scope">
  186. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  187. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  188. </template>
  189. </el-table-column>
  190. <el-table-column
  191. fixed="right"
  192. header-align="center"
  193. align="center"
  194. width="130"
  195. label="操作">
  196. <template slot-scope="scope">
  197. <el-link style="cursor: pointer" v-if="scope.row.valueChooseFlag === 'Y'" @click="chooseModal(scope.row)">可选值</el-link>
  198. <el-link style="cursor: pointer" @click="deleteModalDetails(scope.row)">删除项目</el-link>
  199. </template>
  200. </el-table-column>
  201. </el-table>
  202. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  203. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  204. </el-footer>
  205. </el-dialog>
  206. <el-dialog title="添加项目" :close-on-click-modal="false" v-drag :visible.sync="addDetailModalFlag" width="300px">
  207. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  208. <el-form-item >
  209. <span slot="label" style="" @click="getBaseList(1025)"><a herf="#">维保项目编码</a></span>
  210. <el-input v-model="detailData.itemNo" @blur="itemNoBlur" style="width: 120px"></el-input>
  211. </el-form-item>
  212. <el-form-item label="维保项目名称:">
  213. <el-input v-model="detailData.itemDesc" disabled style="width: 120px"></el-input>
  214. </el-form-item>
  215. </el-form>
  216. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  217. <el-button type="primary" @click="saveModalDetails()">保存</el-button>
  218. <el-button type="primary" @click="addDetailModalFlag = false">关闭</el-button>
  219. </el-footer>
  220. </el-dialog>
  221. <el-dialog title="快速添加" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="fastAddFlag" width="1200px">
  222. <div style="font-size: 12px">
  223. <!-- 维保模板编码<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input>-->
  224. <!-- 维保模板名称<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input>-->
  225. <el-form :inline="true" label-position="top" :model="detailData">
  226. <el-form-item :label="'项目编码'">
  227. <el-input v-model="detailData.itemNo" style="width: 120px"></el-input>
  228. </el-form-item>
  229. <el-form-item :label="'项目名称'">
  230. <el-input v-model="detailData.itemDesc" style="width: 120px"></el-input>
  231. </el-form-item>
  232. <el-form-item :label="' '">
  233. <el-button type="primary" @click="queryTemplateItem()">查询</el-button>
  234. </el-form-item>
  235. </el-form>
  236. </div>
  237. <el-container style="margin-top: 0px;">
  238. <el-main style="width: 450px;padding: 1px">
  239. <span style="font-size: 12px" >可选项目</span>
  240. <el-table
  241. height="400px"
  242. :data="itemList1"
  243. border
  244. ref="itemTable1"
  245. @row-click="itemClickRow1"
  246. @selection-change="selectionItem1"
  247. highlight-current-row
  248. v-loading="dataListLoading"
  249. style="width: 100%">
  250. <el-table-column
  251. type="selection"
  252. header-align="center"
  253. align="center"
  254. width="50">
  255. </el-table-column>
  256. <el-table-column
  257. prop="itemNo"
  258. header-align="center"
  259. align="center"
  260. min-width="64"
  261. label="项目编码">
  262. </el-table-column>
  263. <el-table-column
  264. prop="itemDesc"
  265. header-align="center"
  266. align="left"
  267. min-width="95"
  268. label="项目名称">
  269. </el-table-column>
  270. <el-table-column
  271. prop="itemRemark"
  272. header-align="center"
  273. align="left"
  274. min-width="311"
  275. label="方法说明">
  276. </el-table-column>
  277. </el-table>
  278. </el-main>
  279. <el-main style="width: 10px;padding: 1px">
  280. <div style="margin-top: 200px;margin-left: 18px">
  281. <el-button type="primary" @click="addItem()">添加>></el-button>
  282. </div>
  283. <div style="margin-top: 15px;margin-left: 18px">
  284. <el-button type="primary" @click="deleteItem()">删除<<</el-button>
  285. </div>
  286. </el-main>
  287. <el-main style="width: 450px;padding: 1px">
  288. <span style="font-size: 12px" >已有项目</span>
  289. <el-table
  290. height="400px"
  291. :data="itemList2"
  292. border
  293. ref="itemTable2"
  294. @row-click="itemClickRow2"
  295. @selection-change="selectionItem2"
  296. highlight-current-row
  297. v-loading="dataListLoading"
  298. style="width: 100%">
  299. <el-table-column
  300. type="selection"
  301. header-align="center"
  302. align="center"
  303. width="50">
  304. </el-table-column>
  305. <el-table-column
  306. prop="itemNo"
  307. header-align="center"
  308. align="center"
  309. min-width="64"
  310. label="项目编码">
  311. </el-table-column>
  312. <el-table-column
  313. prop="itemDesc"
  314. header-align="center"
  315. align="left"
  316. min-width="95"
  317. label="项目名称">
  318. </el-table-column>
  319. <el-table-column
  320. prop="itemRemark"
  321. header-align="center"
  322. align="left"
  323. min-width="311"
  324. label="方法说明">
  325. </el-table-column>
  326. </el-table>
  327. </el-main>
  328. </el-container>
  329. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  330. <el-button type="primary" @click="fastAddFlag = false">关闭</el-button>
  331. </el-footer>
  332. </el-dialog>
  333. <el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="350px">
  334. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  335. <el-form-item label="维保项目名称">
  336. <el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input>
  337. </el-form-item>
  338. <el-form-item :label="'检测值类型'">
  339. <el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px">
  340. <el-option label="文本" value="T"></el-option>
  341. <el-option label="数字" value="N"></el-option>
  342. </el-select>
  343. </el-form-item>
  344. </el-form>
  345. <el-table
  346. :height="300"
  347. :data="chooseTableData"
  348. border
  349. style="width: 100%">
  350. <el-table-column
  351. prop="availableValue"
  352. header-align="center"
  353. align="center"
  354. min-width="200"
  355. label="属性值">
  356. </el-table-column>
  357. </el-table>
  358. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  359. <el-button type="primary" @click="chooseModalFlag = false">关闭</el-button>
  360. </el-footer>
  361. </el-dialog>
  362. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  363. </div>
  364. </template>
  365. <script>
  366. import {
  367. eamPropertiesModelSearch,
  368. eamPropertiesModelSave,
  369. eamPropertiesModelEdit,
  370. eamPropertiesModelDelete,
  371. searchItemAvailable,
  372. searchModalDetails,
  373. saveModalDetails,
  374. deleteModalDetails, // 项目多选删除
  375. eamPropertiesItemSearch,
  376. getItemLists,
  377. deleteModalDetail, // 项目单删
  378. getSiteAndBuByUserName,
  379. getRoleByUserName,
  380. goUpItemEam,
  381. goDownItemEam,
  382. } from "@/api/eam/eam.js"
  383. import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"
  384. import Chooselist from '@/views/modules/common/Chooselist_eam'
  385. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  386. import excel from "@/utils/excel-util.js";
  387. export default {
  388. components: {
  389. Chooselist
  390. },
  391. watch: {
  392. searchData: {
  393. deep: true,
  394. handler: function (newV, oldV) {
  395. this.searchData.codeNo = this.searchData.codeNo.toUpperCase()
  396. }
  397. },
  398. itemData: {
  399. deep: true,
  400. handler: function (newV, oldV) {
  401. this.itemData.itemNo = this.itemData.itemNo.toUpperCase()
  402. }
  403. },
  404. modalData: {
  405. deep: true,
  406. handler: function (newV, oldV) {
  407. this.modalData.codeNo = this.modalData.codeNo.toUpperCase()
  408. }
  409. },
  410. detailData: {
  411. deep: true,
  412. handler: function (newV, oldV) {
  413. this.detailData.codeNo = this.detailData.codeNo.toUpperCase()
  414. this.detailData.itemNo = this.detailData.itemNo.toUpperCase()
  415. }
  416. }
  417. },
  418. data () {
  419. return {
  420. columnsProp:['createdBy','active','updateBy'],
  421. // 是否收藏
  422. favorite: false,
  423. // 导出 start
  424. exportData: [],
  425. exportName: "维保模板" + this.dayjs().format('YYYYMMDDHHmmss'),
  426. exportHeader: ["维保模板"],
  427. exportFooter: [],
  428. exportList: [],
  429. // 导出 end
  430. tagNo: '',
  431. searchData: {
  432. site: '',
  433. userName: this.$store.state.user.name,
  434. codeNo: '',
  435. codeDesc: '',
  436. active: 'Y',
  437. functionType: 'B',
  438. isUse: '',
  439. checkType: '',
  440. page: 1,
  441. limit: 10,
  442. },
  443. height: 200,
  444. pageIndex: 1,
  445. pageSize: 20,
  446. totalPage: 0,
  447. addDetailModalFlag: false,
  448. modalFlag: false,
  449. modalDisableFlag: false,
  450. modalData: {
  451. flag: '',
  452. bu: '',
  453. codeNo: '',
  454. codeDesc: '',
  455. active: '',
  456. functionType: 'B',
  457. createdBy: this.$store.state.user.name,
  458. updateBy: this.$store.state.user.name,
  459. userId: this.$store.state.user.name,
  460. checkType: ''
  461. },
  462. detailData: {
  463. site: '',
  464. buNo: '',
  465. codeNo: '',
  466. codeDesc: '',
  467. functionType: 'B',
  468. itemNo: '',
  469. itemDesc: '',
  470. itemType: 'B',
  471. userId: this.$store.state.user.name,
  472. checkType: ''
  473. },
  474. columnList: [
  475. {
  476. userId: this.$store.state.user.name,
  477. functionId: 101003002,
  478. serialNumber: '101003002Table1BuDesc',
  479. tableId: "101003002Table1",
  480. tableName: "维保模板表",
  481. columnProp: 'buDesc',
  482. headerAlign: "center",
  483. align: "center",
  484. columnLabel: 'BU',
  485. columnHidden: false,
  486. columnImage: false,
  487. columnSortable: false,
  488. sortLv: 0,
  489. status: true,
  490. fixed: '',
  491. columnWidth: 100,
  492. },
  493. {
  494. userId: this.$store.state.user.name,
  495. functionId: 101003002,
  496. serialNumber: '101003002Table1CodeNo',
  497. tableId: "101003002Table1",
  498. tableName: "维保模板表",
  499. columnProp: 'codeNo',
  500. headerAlign: "center",
  501. align: "center",
  502. columnLabel: '维保模板编码',
  503. columnHidden: false,
  504. columnImage: false,
  505. columnSortable: false,
  506. sortLv: 0,
  507. status: true,
  508. fixed: '',
  509. columnWidth: 120,
  510. },
  511. {
  512. userId: this.$store.state.user.name,
  513. functionId: 101003002,
  514. serialNumber: '101003002Table1CodeDesc',
  515. tableId: "101003002Table1",
  516. tableName: "维保模板表",
  517. columnProp: 'codeDesc',
  518. headerAlign: "center",
  519. align: "left",
  520. columnLabel: '维保模板名称',
  521. columnHidden: false,
  522. columnImage: false,
  523. columnSortable: false,
  524. sortLv: 0,
  525. status: true,
  526. fixed: '',
  527. columnWidth: 200,
  528. },
  529. {
  530. userId: this.$store.state.user.name,
  531. functionId: 101003002,
  532. serialNumber: '101003002Table1Active',
  533. tableId: "101003002Table1",
  534. tableName: "维保模板表",
  535. columnProp: 'active',
  536. headerAlign: "center",
  537. align: "center",
  538. columnLabel: '在用',
  539. columnHidden: false,
  540. columnImage: false,
  541. columnSortable: false,
  542. sortLv: 0,
  543. status: true,
  544. fixed: '',
  545. columnWidth: 100,
  546. },
  547. {
  548. userId: this.$store.state.user.name,
  549. functionId: 101003002,
  550. serialNumber: '101003002Table1IsUse',
  551. tableId: "101003002Table1",
  552. tableName: "维保模板表",
  553. columnProp: 'isUse',
  554. headerAlign: "center",
  555. align: "center",
  556. columnLabel: '是否被用',
  557. columnHidden: false,
  558. columnImage: false,
  559. columnSortable: false,
  560. sortLv: 0,
  561. status: true,
  562. fixed: '',
  563. columnWidth: 100,
  564. },
  565. {
  566. userId: this.$store.state.user.name,
  567. functionId: 101003002,
  568. serialNumber: '101003002Table1CreatedDate',
  569. tableId: "101003002Table1",
  570. tableName: "维保模板表",
  571. columnProp: 'createdDate',
  572. headerAlign: "center",
  573. align: "center",
  574. columnLabel: '创建时间',
  575. columnHidden: false,
  576. columnImage: false,
  577. columnSortable: false,
  578. sortLv: 0,
  579. status: true,
  580. fixed: '',
  581. columnWidth: 170,
  582. },
  583. {
  584. userId: this.$store.state.user.name,
  585. functionId: 101003002,
  586. serialNumber: '101003002Table1CreatedBy',
  587. tableId: "101003002Table1",
  588. tableName: "维保模板表",
  589. columnProp: 'createdBy',
  590. headerAlign: "center",
  591. align: "center",
  592. columnLabel: '创建人',
  593. columnHidden: false,
  594. columnImage: false,
  595. columnSortable: false,
  596. sortLv: 0,
  597. status: true,
  598. fixed: '',
  599. columnWidth: 100,
  600. },
  601. {
  602. userId: this.$store.state.user.name,
  603. functionId: 101003002,
  604. serialNumber: '101003002Table1UpdateDate',
  605. tableId: "101003002Table1",
  606. tableName: "维保模板表",
  607. columnProp: 'updateDate',
  608. headerAlign: "center",
  609. align: "center",
  610. columnLabel: '更新时间',
  611. columnHidden: false,
  612. columnImage: false,
  613. columnSortable: false,
  614. sortLv: 0,
  615. status: true,
  616. fixed: '',
  617. columnWidth: 170,
  618. },
  619. {
  620. userId: this.$store.state.user.name,
  621. functionId: 101003002,
  622. serialNumber: '101003002Table1UpdateBy',
  623. tableId: "101003002Table1",
  624. tableName: "维保模板表",
  625. columnProp: 'updateBy',
  626. headerAlign: "center",
  627. align: "center",
  628. columnLabel: '更新人',
  629. columnHidden: false,
  630. columnImage: false,
  631. columnSortable: false,
  632. sortLv: 0,
  633. status: true,
  634. fixed: '',
  635. columnWidth: 100,
  636. },
  637. ],
  638. detailModelFlag: false,
  639. detailList: [],
  640. chooseTable1Data: [],
  641. dataListLoading: false,
  642. dataListSelections: [],
  643. chooseModalFlag: false,
  644. itemFlag: 'text',
  645. itemData: {
  646. itemNo: '',
  647. valueNo: '',
  648. availableValue: '',
  649. itemType: 'B',
  650. createdBy: this.$store.state.user.name
  651. },
  652. dataList: [],
  653. departmentList: [],
  654. // 展示列集
  655. columnDetailList: [
  656. {
  657. userId: this.$store.state.user.name,
  658. functionId: 101003002,
  659. serialNumber: '101003002Table2ItemNo',
  660. tableId: "101003002Table2",
  661. tableName: "维保项目表",
  662. columnProp: 'itemNo',
  663. headerAlign: "center",
  664. align: "left",
  665. columnLabel: '维保项目编码',
  666. columnHidden: false,
  667. columnImage: false,
  668. columnSortable: false,
  669. sortLv: 0,
  670. status: true,
  671. fixed: '',
  672. columnWidth: 82,
  673. },
  674. {
  675. userId: this.$store.state.user.name,
  676. functionId: 101003002,
  677. serialNumber: '101003002Table2ItemDesc',
  678. tableId: "101003002Table2",
  679. tableName: "维保项目表",
  680. columnProp: 'itemDesc',
  681. headerAlign: "center",
  682. align: "left",
  683. columnLabel: '维保项目名称',
  684. columnHidden: false,
  685. columnImage: false,
  686. columnSortable: false,
  687. sortLv: 0,
  688. status: true,
  689. fixed: '',
  690. columnWidth:106,
  691. },
  692. {
  693. userId: this.$store.state.user.name,
  694. functionId: 101003002,
  695. serialNumber: '101003002Table2ItemRemark',
  696. tableId: "101003002Table2",
  697. tableName: "维保项目表",
  698. columnProp: 'itemRemark',
  699. headerAlign: "center",
  700. align: "left",
  701. columnLabel: '维保方法说明',
  702. columnHidden: false,
  703. columnImage: false,
  704. columnSortable: false,
  705. sortLv: 0,
  706. status: true,
  707. fixed: '',
  708. columnWidth: 298,
  709. },
  710. {
  711. userId: this.$store.state.user.name,
  712. functionId: 101003002,
  713. serialNumber: '101003002Table2ValueType',
  714. tableId: "101003002Table2",
  715. tableName: "维保项目表",
  716. columnProp: 'valueType',
  717. headerAlign: "center",
  718. align: "center",
  719. columnLabel: '检测值类型',
  720. columnHidden: false,
  721. columnImage: false,
  722. columnSortable: false,
  723. sortLv: 0,
  724. status: true,
  725. fixed: '',
  726. columnWidth: 70,
  727. },
  728. {
  729. userId: this.$store.state.user.name,
  730. functionId: 101003002,
  731. serialNumber: '101003002Table2DefaultValue',
  732. tableId: "101003002Table2",
  733. tableName: "维保项目表",
  734. columnProp: 'defaultValue',
  735. headerAlign: "center",
  736. align: "right",
  737. columnLabel: '参照值',
  738. columnHidden: false,
  739. columnImage: false,
  740. columnSortable: false,
  741. sortLv: 0,
  742. status: true,
  743. fixed: '',
  744. columnWidth: 65,
  745. },
  746. {
  747. userId: this.$store.state.user.name,
  748. functionId: 101003002,
  749. serialNumber: '101003002Table2MaxValue',
  750. tableId: "101003002Table2",
  751. tableName: "维保项目表",
  752. columnProp: 'maxValue',
  753. headerAlign: "center",
  754. align: "right",
  755. columnLabel: '最大值',
  756. columnHidden: false,
  757. columnImage: false,
  758. columnSortable: false,
  759. sortLv: 0,
  760. status: true,
  761. fixed: '',
  762. columnWidth: 65,
  763. },
  764. {
  765. userId: this.$store.state.user.name,
  766. functionId: 101003002,
  767. serialNumber: '101003002Table2MinValue',
  768. tableId: "101003002Table2",
  769. tableName: "维保项目表",
  770. columnProp: 'minValue',
  771. headerAlign: "center",
  772. align: "right",
  773. columnLabel: '最小值',
  774. columnHidden: false,
  775. columnImage: false,
  776. columnSortable: false,
  777. sortLv: 0,
  778. status: true,
  779. fixed: '',
  780. columnWidth: 65,
  781. },
  782. {
  783. userId: this.$store.state.user.name,
  784. functionId: 101003002,
  785. serialNumber: '101003002Table2ValueChooseFlag',
  786. tableId: "101003002Table2",
  787. tableName: "维保项目表",
  788. columnProp: 'valueChooseFlag',
  789. headerAlign: "center",
  790. align: "center",
  791. columnLabel: '是否值可选',
  792. columnHidden: false,
  793. columnImage: false,
  794. columnSortable: false,
  795. sortLv: 0,
  796. status: true,
  797. fixed: '',
  798. columnWidth: 70,
  799. },
  800. ],
  801. levelList: [],
  802. chooseModalData: {
  803. site: '',
  804. buNo: '',
  805. itemNo: '',
  806. itemDesc: '',
  807. itemType: 'B',
  808. valueTypeDb: '',
  809. },
  810. currentRow:{
  811. },
  812. //---------快速添加----------
  813. fastAddFlag: false,
  814. itemList1: [],
  815. itemList2: [],
  816. itemListRow1: {},
  817. itemListRow2: {},
  818. itemSelections1: [],
  819. itemSelections2: [],
  820. rules: {
  821. codeNoType: [
  822. {
  823. required: true,
  824. message: ' ',
  825. trigger: ['blur','change']
  826. }
  827. ],
  828. codeDescType: [
  829. {
  830. required: true,
  831. message: ' ',
  832. trigger: ['blur','change']
  833. }
  834. ],
  835. activeType: [
  836. {
  837. required: true,
  838. message: ' ',
  839. trigger: ['blur','change']
  840. }
  841. ],
  842. bu: [
  843. {
  844. required: true,
  845. message: ' ',
  846. trigger: ['blur','change']
  847. }
  848. ],
  849. checkType: [
  850. {
  851. required: true,
  852. message: ' ',
  853. trigger: ['blur','change']
  854. }
  855. ]
  856. },
  857. userBuList: [],
  858. userRoleList: [],
  859. chooseTableData: [],
  860. authSearch: false,
  861. authSave: false,
  862. authUpdate: false,
  863. authDelete: false,
  864. menuId: this.$route.meta.menuId,
  865. }
  866. },
  867. mounted () {
  868. this.$nextTick(() => {
  869. this.height = window.innerHeight - 180
  870. })
  871. },
  872. created () {
  873. // 按钮控制
  874. this.getButtonAuthData()
  875. // 获取用户的 site 和 bu
  876. this.getSiteAndBuByUserName()
  877. // 获取用户的 role
  878. this.getRoleByUserName()
  879. // 校验用户是否收藏
  880. this.favoriteIsOk()
  881. // 动态列
  882. this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
  883. this.getTableUserColumn(this.$route.meta.menuId+'table2',2)
  884. if (!this.authSearch) {
  885. // 获取数据列表
  886. this.getDataList()
  887. }
  888. },
  889. methods: {
  890. // 获取用户的bu
  891. getSiteAndBuByUserName () {
  892. let tempData = {
  893. username: this.$store.state.user.name,
  894. }
  895. getSiteAndBuByUserName(tempData).then(({data}) => {
  896. if (data.code === 0) {
  897. this.userBuList = data.rows
  898. }
  899. })
  900. },
  901. // 获取用户的 role
  902. getRoleByUserName () {
  903. let tempData = {
  904. username: this.$store.state.user.name,
  905. }
  906. getRoleByUserName(tempData).then(({data}) => {
  907. if (data.code === 0) {
  908. this.userRoleList = data.rows
  909. }
  910. })
  911. },
  912. // 校验用户是否收藏
  913. favoriteIsOk () {
  914. let userFavorite = {
  915. userId: this.$store.state.user.id,
  916. languageCode: this.$i18n.locale
  917. }
  918. userFavoriteList(userFavorite).then(({data}) => {
  919. for (let i = 0; i < data.list.length; i++) {
  920. if(this.$route.meta.menuId === data.list[i].menuId){
  921. this.favorite = true
  922. }
  923. }
  924. })
  925. },
  926. // 收藏 OR 取消收藏
  927. favoriteFunction () {
  928. let userFavorite = {
  929. userId: this.$store.state.user.id,
  930. functionId: this.$route.meta.menuId,
  931. }
  932. if (this.favorite) {
  933. removeUserFavorite(userFavorite).then(({data}) => {
  934. this.$message.success(data.msg)
  935. this.favorite = false
  936. })
  937. } else {
  938. // 收藏
  939. saveUserFavorite(userFavorite).then(({data}) => {
  940. this.$message.success(data.msg)
  941. this.favorite = true
  942. })
  943. }
  944. },
  945. // 获取基础数据列表S
  946. getBaseList (val,type) {
  947. this.tagNo = val
  948. this.$nextTick(() => {
  949. let strVal = ''
  950. if (val === 1025) {
  951. strVal = this.detailData.itemNo
  952. }
  953. this.$refs.baseList.init(val, strVal)
  954. })
  955. },
  956. // 列表方法的回调
  957. getBaseData (val) {
  958. if (this.tagNo === 1025) {
  959. this.detailData.itemNo = val.ItemNo
  960. this.detailData.itemDesc = val.ItemDesc
  961. }
  962. },
  963. async exportExcel() {
  964. this.searchData.limit = -1
  965. this.searchData.page = 1
  966. excel.exportTable({
  967. url: "/pms/eam/eamPropertiesModelSearch",
  968. columnMapping: this.columnList,//可以直接用table,不需要的列就剔除
  969. mergeSetting: [],//需要合并的列
  970. params: this.searchData,
  971. fileName: this.exportName+".xlsx",
  972. rowFetcher: res => res.data,
  973. columnFormatter: [],
  974. dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列
  975. });
  976. },
  977. //导出excel
  978. // async createExportData () {
  979. // this.searchData.limit = -1
  980. // this.searchData.page = 1
  981. // await eamPropertiesModelSearch(this.searchData).then(({data}) => {
  982. // this.exportList= data.page.list
  983. // })
  984. // return this.exportList
  985. // },
  986. //
  987. // startDownload() {},
  988. //
  989. // finishDownload() {},
  990. //
  991. // fields () {
  992. // let json = "{"
  993. // this.columnList.forEach((item, index) => {
  994. // if (index == this.columnList.length - 1) {
  995. // json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  996. // } else {
  997. // json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  998. // }
  999. // })
  1000. // json += "}"
  1001. // let s = eval("(" + json + ")")
  1002. // return s
  1003. // },
  1004. // 获取数据列表
  1005. getDataList () {
  1006. this.searchData.limit = this.pageSize
  1007. this.searchData.page = this.pageIndex
  1008. eamPropertiesModelSearch(this.searchData).then(({data}) => {
  1009. if (data.code === 0) {
  1010. this.dataList = data.page.list
  1011. this.pageIndex = data.page.currPage
  1012. this.pageSize = data.page.pageSize
  1013. this.totalPage = data.page.totalCount
  1014. }
  1015. this.dataListLoading = false
  1016. })
  1017. },
  1018. // 每页数
  1019. sizeChangeHandle (val) {
  1020. this.pageSize = val
  1021. this.pageIndex = 1
  1022. this.getDataList()
  1023. },
  1024. // 当前页
  1025. currentChangeHandle (val) {
  1026. this.pageIndex = val
  1027. this.getDataList()
  1028. },
  1029. addModal () {
  1030. this.modalData = {
  1031. site: '',
  1032. bu: this.userBuList[0].buNo,
  1033. flag: '1',
  1034. codeNo: '',
  1035. codeDesc: '',
  1036. active: 'Y',
  1037. functionType: 'B',
  1038. userId: this.$store.state.user.name,
  1039. createdBy: this.$store.state.user.name,
  1040. updateBy: this.$store.state.user.name,
  1041. checkType: this.userRoleList.length > 0 ? this.userRoleList[0].roleNo : 'R022',
  1042. }
  1043. this.modalDisableFlag = false
  1044. this.modalFlag = true
  1045. },
  1046. updateModal (row) {
  1047. this.modalData = {
  1048. site: this.$store.state.user.site,
  1049. flag: '2',
  1050. bu: row.site + '_' + row.buNo,
  1051. codeNo: row.codeNo,
  1052. codeDesc: row.codeDesc,
  1053. active: row.active,
  1054. functionType: 'B',
  1055. userId: this.$store.state.user.name,
  1056. createdBy: this.$store.state.user.name,
  1057. updateBy: this.$store.state.user.name,
  1058. checkType: row.checkType
  1059. }
  1060. this.modalDisableFlag = true
  1061. this.modalFlag = true
  1062. },
  1063. // 删除
  1064. deletePropertiesModel (row) {
  1065. this.$confirm(`是否删除这个维保模板?`, '提示', {
  1066. confirmButtonText: '确定',
  1067. cancelButtonText: '取消',
  1068. type: 'warning'
  1069. }).then(() => {
  1070. eamPropertiesModelDelete(row).then(({data}) => {
  1071. if (data && data.code === 0) {
  1072. this.getDataList()
  1073. this.$message({
  1074. message: '操作成功',
  1075. type: 'success',
  1076. duration: 1500,
  1077. onClose: () => {}
  1078. })
  1079. } else {
  1080. this.$alert(data.msg, '错误', {
  1081. confirmButtonText: '确定'
  1082. })
  1083. }
  1084. })
  1085. })
  1086. },
  1087. saveData () {
  1088. if (this.modalData.bu === '' || this.modalData.bu == null) {
  1089. this.$message.warning('请选择BU!')
  1090. return
  1091. }
  1092. if (this.modalData.checkType === '' || this.modalData.checkType == null) {
  1093. this.$message.warning('请选择部门!')
  1094. return
  1095. }
  1096. if (this.modalData.codeNo === '' || this.modalData.codeNo == null) {
  1097. this.$message.warning('请输入维保模板编码!')
  1098. return
  1099. }
  1100. if (this.modalData.codeDesc === '' || this.modalData.codeDesc == null) {
  1101. this.$message.warning('请输入维保模板名称!')
  1102. return
  1103. }
  1104. if (this.modalData.active === '' || this.modalData.active == null) {
  1105. this.$message.warning('选择是否在用!')
  1106. return
  1107. }
  1108. if (this.modalData.flag === '1') {
  1109. eamPropertiesModelSave(this.modalData).then(({data}) => {
  1110. if (data && data.code === 0) {
  1111. this.getDataList()
  1112. this.modalFlag = false
  1113. this.$message({
  1114. message: '操作成功',
  1115. type: 'success',
  1116. duration: 1500,
  1117. onClose: () => {}
  1118. })
  1119. } else {
  1120. this.$alert(data.msg, '错误', {
  1121. confirmButtonText: '确定'
  1122. })
  1123. }
  1124. })
  1125. } else {
  1126. eamPropertiesModelEdit(this.modalData).then(({data}) => {
  1127. if (data && data.code === 0) {
  1128. this.getDataList()
  1129. this.modalFlag = false
  1130. this.$message({
  1131. message: '操作成功',
  1132. type: 'success',
  1133. duration: 1500,
  1134. onClose: () => {}
  1135. })
  1136. } else {
  1137. this.$alert(data.msg, '错误', {
  1138. confirmButtonText: '确定'
  1139. })
  1140. }
  1141. })
  1142. }
  1143. },
  1144. // 打开项目清单
  1145. detailModal (row) {
  1146. this.detailData.site = row.site
  1147. this.detailData.buNo = row.buNo
  1148. this.detailData.codeNo = row.codeNo
  1149. this.detailData.codeDesc = row.codeDesc
  1150. this.detailData.checkType = row.checkType
  1151. searchModalDetails(this.detailData).then(({data}) => {
  1152. this.detailList = data.rows
  1153. })
  1154. this.detailModelFlag = true
  1155. },
  1156. // 保存项目明细
  1157. saveModalDetails () {
  1158. if (this.detailData.itemNo === '' || this.detailData.itemNo == null) {
  1159. this.$alert('请选择维保项目编码!', '错误', {
  1160. confirmButtonText: '确定'
  1161. })
  1162. return false
  1163. }
  1164. saveModalDetails(this.detailData).then(({data}) => {
  1165. if (data && data.code === 0) {
  1166. searchModalDetails(this.detailData).then(({data}) => {
  1167. this.detailList = data.rows
  1168. })
  1169. this.addDetailModalFlag = false
  1170. this.$message({
  1171. message: '操作成功',
  1172. type: 'success',
  1173. duration: 1500,
  1174. onClose: () => {}
  1175. })
  1176. } else {
  1177. this.$alert(data.msg, '错误', {
  1178. confirmButtonText: '确定'
  1179. })
  1180. }
  1181. })
  1182. },
  1183. itemNoBlur () {
  1184. let inData = {
  1185. site: this.$store.state.user.site,
  1186. itemType: 'B',
  1187. itemNo: this.detailData.itemNo
  1188. }
  1189. eamPropertiesItemSearch(inData).then(({data}) => {
  1190. if(data.rows.length>0){
  1191. this.detailData.itemDesc=data.rows[0].itemDesc
  1192. }
  1193. })
  1194. },
  1195. deleteModalDetails (row) {
  1196. this.$confirm(`是否删除这个维保项目?`, '提示', {
  1197. confirmButtonText: '确定',
  1198. cancelButtonText: '取消',
  1199. type: 'warning'
  1200. }).then(() => {
  1201. deleteModalDetail(row).then(({data}) => {
  1202. if (data && data.code === 0) {
  1203. searchModalDetails(this.detailData).then(({data}) => {
  1204. this.detailList = data.rows
  1205. })
  1206. this.$message({
  1207. message: '操作成功',
  1208. type: 'success',
  1209. duration: 1500,
  1210. onClose: () => {}
  1211. })
  1212. } else {
  1213. this.$alert(data.msg, '错误', {
  1214. confirmButtonText: '确定'
  1215. })
  1216. }
  1217. })
  1218. })
  1219. },
  1220. chooseModal (row) {
  1221. this.chooseModalData.site = row.site
  1222. this.chooseModalData.buNo = row.buNo
  1223. this.chooseModalData.itemNo = row.itemNo
  1224. this.chooseModalData.itemDesc = row.itemDesc
  1225. this.chooseModalData.valueTypeDb = row.valueTypeDb
  1226. searchItemAvailable(this.chooseModalData).then(({data}) => {
  1227. this.chooseTableData = data.rows
  1228. })
  1229. this.chooseModalFlag = true
  1230. },
  1231. //---------快速添加----------
  1232. queryTemplateItem () {
  1233. getItemLists(this.detailData).then(({data}) => {
  1234. this.itemList1 = data.row1
  1235. this.itemList2 = data.row2
  1236. })
  1237. },
  1238. addFastModal () {
  1239. this.itemListRow2 = null
  1240. this.itemListRow1 = null
  1241. getItemLists(this.detailData).then(({data}) => {
  1242. this.itemList1 = data.row1
  1243. this.itemList2 = data.row2
  1244. })
  1245. this.fastAddFlag = true
  1246. },
  1247. // 可选项目
  1248. itemClickRow1 (row) {
  1249. this.$refs.itemTable1.toggleRowSelection(row)
  1250. },
  1251. itemClickRow(row){
  1252. this.currentRow= JSON.parse(JSON.stringify(row))
  1253. },
  1254. // 已有项目
  1255. itemClickRow2 (row) {
  1256. this.$refs.itemTable2.toggleRowSelection(row)
  1257. },
  1258. selectionItem1 (val) {
  1259. this.itemSelections1 = val
  1260. },
  1261. selectionItem2 (val) {
  1262. this.itemSelections2 = val
  1263. },
  1264. addItem () {
  1265. if (this.itemSelections1 == null || this.itemSelections1.length === 0) {
  1266. this.$alert("请选择可选项目!", '错误', {
  1267. confirmButtonText: '确定'
  1268. })
  1269. return false
  1270. }
  1271. let inData = {
  1272. site: this.detailData.site,
  1273. buNo: this.detailData.buNo,
  1274. codeNo: this.detailData.codeNo,
  1275. codeDesc: this.detailData.codeDesc,
  1276. functionType: this.detailData.functionType,
  1277. itemList: this.itemSelections1,
  1278. itemType: this.detailData.itemType,
  1279. userId: this.$store.state.user.name,
  1280. checkType: this.detailData.checkType,
  1281. }
  1282. saveModalDetails(inData).then(({data}) => {
  1283. if (data && data.code === 0) {
  1284. getItemLists(this.detailData).then(({data}) => {
  1285. this.itemList1 = data.row1
  1286. this.itemList2 = data.row2
  1287. })
  1288. this.itemSelections1 = []
  1289. } else {
  1290. this.$alert(data.msg, '错误', {
  1291. confirmButtonText: '确定'
  1292. })
  1293. }
  1294. })
  1295. },
  1296. deleteItem () {
  1297. if (this.itemSelections2 == null || this.itemSelections2.length === 0) {
  1298. this.$alert("请选择已有项目!", '错误', {
  1299. confirmButtonText: '确定'
  1300. })
  1301. return false
  1302. }
  1303. let inData = {
  1304. site: this.detailData.site,
  1305. buNo: this.detailData.buNo,
  1306. codeNo: this.detailData.codeNo,
  1307. codeDesc: this.detailData.codeDesc,
  1308. functionType: this.detailData.functionType,
  1309. itemList: this.itemSelections2,
  1310. itemType: this.detailData.itemType,
  1311. userId: this.$store.state.user.name
  1312. }
  1313. deleteModalDetails(inData).then(({data}) => {
  1314. if (data && data.code === 0) {
  1315. getItemLists(this.detailData).then(({data}) => {
  1316. this.itemList1 = data.row1
  1317. this.itemList2 = data.row2
  1318. })
  1319. this.itemSelections2 = []
  1320. } else {
  1321. this.$alert(data.msg, '错误', {
  1322. confirmButtonText: '确定'
  1323. })
  1324. }
  1325. })
  1326. },
  1327. refreshDetailList () {
  1328. searchModalDetails(this.detailData).then(({data}) => {
  1329. this.detailList = data.rows
  1330. })
  1331. },
  1332. goUp() {
  1333. goUpItemEam(this.currentRow).then(({data}) => {
  1334. if (data && data.code === 0) {
  1335. searchModalDetails(this.detailData).then(({data}) => {
  1336. this.detailList = data.rows
  1337. for (let i = 0; i <this.detailList.length ; i++) {
  1338. if(this.detailList[i].itemNo===this.currentRow.itemNo){
  1339. this.$refs.detailTable.setCurrentRow(this.detailList[i]);
  1340. this.currentRow=JSON.parse(JSON.stringify(this.detailList[i]))
  1341. this.$message.success('操作成功')
  1342. }
  1343. }
  1344. //this.objectSearch()
  1345. })
  1346. }
  1347. })
  1348. },
  1349. goDown() {
  1350. goDownItemEam(this.currentRow).then(({data}) => {
  1351. if (data && data.code === 0) {
  1352. searchModalDetails(this.detailData).then(({data}) => {
  1353. this.detailList = data.rows
  1354. for (let i = 0; i <this.detailList.length ; i++) {
  1355. if(this.detailList[i].itemNo===this.currentRow.itemNo){
  1356. this.$refs.detailTable.setCurrentRow(this.detailList[i]);
  1357. this.currentRow=JSON.parse(JSON.stringify(this.detailList[i]))
  1358. this.$message.success('操作成功')
  1359. }
  1360. }
  1361. })
  1362. }
  1363. })
  1364. },
  1365. // 动态列开始 获取 用户保存的 格式列
  1366. async getTableUserColumn (tableId, columnId) {
  1367. let queryTableUser = {
  1368. userId: this.$store.state.user.name,
  1369. functionId: this.$route.meta.menuId,
  1370. tableId: tableId,
  1371. status: true,
  1372. languageCode: this.$i18n.locale
  1373. }
  1374. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  1375. if (data.rows.length > 0) {
  1376. switch (columnId) {
  1377. case 1:
  1378. this.columnList = data.rows
  1379. break;
  1380. case 2:
  1381. this.columnDetailList = data.rows
  1382. break;
  1383. }
  1384. } else {
  1385. this.getColumnList(tableId, columnId)
  1386. }
  1387. })
  1388. },
  1389. // 获取 tableDefault 列
  1390. async getColumnList (tableId, columnId) {
  1391. let queryTable = {
  1392. functionId: this.$route.meta.menuId,
  1393. tableId: tableId,
  1394. languageCode: this.$i18n.locale
  1395. }
  1396. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  1397. if (!data.rows.length == 0) {
  1398. switch (columnId) {
  1399. case 1:
  1400. this.columnList = data.rows
  1401. break;
  1402. case 2:
  1403. this.columnDetailList = data.rows
  1404. break;
  1405. }
  1406. }
  1407. })
  1408. },
  1409. //获取按钮的权限数据
  1410. getButtonAuthData () {
  1411. let searchFlag = this.isAuth(this.menuId+":search")
  1412. let saveFlag = this.isAuth(this.menuId+":save")
  1413. let updateFlag = this.isAuth(this.menuId+":update")
  1414. let deleteFlag = this.isAuth(this.menuId+":delete")
  1415. //处理页面的权限数据
  1416. this.authSearch = !searchFlag
  1417. this.authSave = !saveFlag
  1418. this.authUpdate = !updateFlag
  1419. this.authDelete = !deleteFlag
  1420. },
  1421. }
  1422. }
  1423. </script>
  1424. <style scoped>
  1425. .el-table /deep/ .cell{
  1426. height: auto;
  1427. line-height: 1.5;
  1428. }
  1429. </style>