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.

1498 lines
52 KiB

4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 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
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;">
  4. <el-form-item :label="labels.workCenterNo">
  5. <el-input v-model="modelData.workCenterNo" readonly style="width: 130px"></el-input>
  6. <el-button @click="getData()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.search}}</el-button>
  7. </el-form-item>
  8. <el-form-item :label="labels.workCenterDesc">
  9. <el-input v-model="modelData.workCenterDesc" readonly style="width: 130px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="labels.site">
  12. <el-input v-model="modelData.site" readonly style="width: 130px"></el-input>
  13. </el-form-item>
  14. <el-form-item :label="labels.active">
  15. <el-input v-model="modelData.active" readonly style="width: 40px"></el-input>
  16. <el-button @click="addModal()" type="primary" :disabled = "authAdd" style="margin-left: 2px;margin-top: 0px">{{buttons.add}}</el-button>
  17. <download-excel
  18. :fields="fields()"
  19. :data="exportData"
  20. type="xls"
  21. :name="exportName"
  22. :header="exportHeader"
  23. :footer="exportFooter"
  24. :fetch="createExportData"
  25. :before-generate="startDownload"
  26. :before-finish="finishDownload"
  27. worksheet="导出信息"
  28. class="el-button el-button--primary el-button--medium">
  29. {{ buttons.download }}
  30. </download-excel>
  31. <download-excel
  32. :fields="fields2()"
  33. :data="exportData2"
  34. type="xls"
  35. :name="exportName2"
  36. :header="exportHeader2"
  37. :footer="exportFooter2"
  38. :fetch="createExportData2"
  39. :before-generate="startDownload2"
  40. :before-finish="finishDownload2"
  41. worksheet="导出信息"
  42. class="el-button el-button--primary el-button--medium">
  43. {{ buttons.download2 }}
  44. </download-excel>
  45. </el-form-item>
  46. </el-form>
  47. <el-tabs v-model="activeName" >
  48. <el-tab-pane :label="labels.base" name="first">
  49. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  50. <el-form-item :label="labels.workCenterType">
  51. <el-input v-model="modelData.workCenterType" readonly style="width: 130px"></el-input>
  52. </el-form-item>
  53. <el-form-item :label="labels.proLineNo">
  54. <el-input v-model="modelData.proLineNo" readonly style="width: 130px"></el-input>
  55. </el-form-item>
  56. <el-form-item :label="labels.productionLineDesc">
  57. <el-input v-model="modelData.productionLineDesc" readonly style="width: 130px"></el-input>
  58. </el-form-item>
  59. <el-form-item :label="labels.canCreateNewRollFlag">
  60. <el-input v-model="modelData.canCreateNewRollFlag" readonly style="width: 40px"></el-input>
  61. </el-form-item>
  62. </el-form>
  63. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;">
  64. <el-form-item :label="labels.createdDate">
  65. <el-input v-model="modelData.createdDate" readonly style="width: 130px"></el-input>
  66. </el-form-item>
  67. <el-form-item :label="labels.remark">
  68. <el-input v-model="modelData.remark" readonly style="width: 130px"></el-input>
  69. </el-form-item>
  70. <el-form-item :label="labels.needSetupFlag">
  71. <el-input v-model="modelData.needSetupFlag" readonly style="width: 40px"></el-input>
  72. </el-form-item>
  73. </el-form>
  74. </el-tab-pane>
  75. <el-tab-pane :label="labels.partInvolved" name="second">
  76. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  77. <el-button @click="getPartDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.partInfo}}</el-button>
  78. </el-form>
  79. <el-table
  80. :height="height"
  81. :data="dataList"
  82. border
  83. @row-click="clickData"
  84. highlight-current-row
  85. v-loading="dataListLoading"
  86. style="width: 100%;">
  87. <el-table-column
  88. v-for="(item,index) in columnList" :key="index"
  89. :sortable="item.columnSortable"
  90. :prop="item.columnProp"
  91. :header-align="item.headerAlign"
  92. :show-overflow-tooltip="item.showOverflowTooltip"
  93. :align="item.align"
  94. :fixed="item.fixed==''?false:item.fixed"
  95. :min-width="item.columnWidth"
  96. :label="item.columnLabel">
  97. <template slot-scope="scope">
  98. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  99. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  100. style="width: 100px; height: 80px"/></span>
  101. </template>
  102. </el-table-column>
  103. </el-table>
  104. </el-tab-pane>
  105. <el-tab-pane :label="labels.resource2" name="third">
  106. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  107. <el-button @click="jumpCalendar()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.jumpCalendar}}</el-button>
  108. <el-button @click="addResource()" v-if="!authAdd" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.add}}</el-button>
  109. <el-button @click="editResource()" v-if="!authEdit" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.update}}</el-button>
  110. <el-button @click="deleteCalendar()" v-if="!authDelete" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.delete}}</el-button>
  111. <el-button @click="setResource()" type="primary" style="margin-left: 2px;margin-top: 0px">{{buttons.setResource}}</el-button>
  112. </el-form>
  113. <el-table
  114. :height="height"
  115. :data="dataList2"
  116. border
  117. @row-click="clickData2"
  118. highlight-current-row
  119. v-loading="dataListLoading"
  120. style="width: 100%;">
  121. <el-table-column
  122. v-for="(item,index) in columnList2" :key="index"
  123. :sortable="item.columnSortable"
  124. :prop="item.columnProp"
  125. :header-align="item.headerAlign"
  126. :show-overflow-tooltip="item.showOverflowTooltip"
  127. :align="item.align"
  128. :fixed="item.fixed==''?false:item.fixed"
  129. :min-width="item.columnWidth"
  130. :label="item.columnLabel">
  131. <template slot-scope="scope">
  132. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  133. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  134. style="width: 100px; height: 80px"/></span>
  135. </template>
  136. </el-table-column>
  137. </el-table>
  138. </el-tab-pane>
  139. </el-tabs>
  140. <el-dialog :title="labels.dataList" :close-on-click-modal="false" v-drag :visible.sync="modelFlag2" width="680px" >
  141. <el-table
  142. height="400"
  143. :data="dataList3"
  144. border
  145. @row-dblclick="tableHanddle"
  146. v-loading="dataListLoading"
  147. style="width: 100%;">
  148. <el-table-column
  149. header-align="center"
  150. align="center"
  151. width="80"
  152. :label="labels.do">
  153. <template slot-scope="scope">
  154. <a type="text" size="small" v-if="!authEdit" @click="editModel(scope.row)">{{buttons.update}}</a>
  155. <a type="text" size="small" v-if="!authDelete" @click="deleteData(scope.row)">{{buttons.delete}}</a>
  156. </template>
  157. </el-table-column>
  158. <el-table-column
  159. v-for="(item,index) in columnList3" :key="index"
  160. :sortable="item.columnSortable"
  161. :prop="item.columnProp"
  162. :header-align="item.headerAlign"
  163. :show-overflow-tooltip="item.showOverflowTooltip"
  164. :align="item.align"
  165. :fixed="item.fixed==''?false:item.fixed"
  166. :width="item.columnWidth"
  167. :label="item.columnLabel">
  168. <template slot-scope="scope">
  169. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  170. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  171. style="width: 100px; height: 80px"/></span>
  172. </template>
  173. </el-table-column>
  174. </el-table>
  175. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  176. <el-button type="primary" @click="modelFlag2 = false">{{buttons.close}}</el-button>
  177. </el-footer>
  178. </el-dialog>
  179. <el-dialog :title="labels.workCenter" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="619px" >
  180. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  181. <el-form-item :label="labels.workCenterNo">
  182. <el-input v-model="modelData2.workCenterNo" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input>
  183. </el-form-item>
  184. <el-form-item :label="labels.workCenterDesc">
  185. <el-input v-model="modelData2.workCenterDesc" style="width: 130px"></el-input>
  186. </el-form-item>
  187. <el-form-item :label="labels.site">
  188. <el-input v-model="modelData2.site" style="width: 130px"></el-input>
  189. </el-form-item>
  190. <el-form-item :label="labels.active">
  191. <el-select filterable v-model="modelData2.active" style="width: 130px">
  192. <el-option label="Y" value="Y"></el-option>
  193. <el-option label="N" value="N"></el-option>
  194. </el-select>
  195. </el-form-item>
  196. </el-form>
  197. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  198. <el-form-item :label="labels.workCenterType">
  199. <el-select filterable v-model="modelData2.workCenterType" style="width: 130px">
  200. <el-option :label="labels.inner" value="内部"></el-option>
  201. <el-option :label="labels.outer" value="外部"></el-option>
  202. </el-select>
  203. </el-form-item>
  204. <el-form-item >
  205. <span slot="label" style="" @click="getBaseList(25)"><a herf="#">{{labels.proLineNo}}</a></span>
  206. <el-input v-model="modelData2.proLineNo" @change="getProLineNo" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input>
  207. </el-form-item>
  208. <el-form-item :label="labels.productionLineDesc">
  209. <el-input v-model="modelData2.productionLineDesc" disabled style="width: 130px"></el-input>
  210. </el-form-item>
  211. <el-form-item :label="labels.canCreateNewRollFlag">
  212. <el-select filterable v-model="modelData2.canCreateNewRollFlag" style="width: 130px">
  213. <el-option label="Y" value="Y"></el-option>
  214. <el-option label="N" value="N"></el-option>
  215. </el-select>
  216. </el-form-item>
  217. </el-form>
  218. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  219. <el-form-item :label="labels.createdDate">
  220. <el-date-picker
  221. style="width: 130px"
  222. v-model="modelData2.createdDate"
  223. value-format="yyyy-MM-dd"
  224. placeholder="选择日期">
  225. </el-date-picker>
  226. </el-form-item>
  227. <el-form-item :label="labels.remark">
  228. <el-input v-model="modelData2.remark" style="width: 130px"></el-input>
  229. </el-form-item>
  230. <el-form-item :label="labels.needSetupFlag">
  231. <el-select filterable v-model="modelData2.needSetupFlag" style="width: 130px">
  232. <el-option label="Y" value="Y"></el-option>
  233. <el-option label="N" value="N"></el-option>
  234. </el-select>
  235. </el-form-item>
  236. </el-form>
  237. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  238. <el-button type="primary" @click="ModelSave()">{{buttons.save}}</el-button>
  239. <el-button type="primary" @click="modelFlag = false">{{buttons.close}}</el-button>
  240. </el-footer>
  241. </el-dialog>
  242. <el-dialog :title="labels.resource" :close-on-click-modal="false" v-drag :visible.sync="modelFlag3" width="460px" >
  243. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  244. <el-form-item :label="labels.workCenterNo">
  245. <el-input v-model="modelData3.workCenterNo" disabled style="width: 130px" ></el-input>
  246. </el-form-item>
  247. <el-form-item :label="labels.site">
  248. <el-input v-model="modelData3.site" disabled style="width: 130px"></el-input>
  249. </el-form-item>
  250. </el-form>
  251. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  252. <el-form-item :label="labels.resourceID">
  253. <el-input v-model="modelData3.resourceID" :disabled="model3InputFlag" style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input>
  254. </el-form-item>
  255. <el-form-item :label="labels.resourceDesc">
  256. <el-input v-model="modelData3.resourceDesc" style="width: 130px"></el-input>
  257. </el-form-item>
  258. <el-form-item :label="labels.efficiency">
  259. <el-input v-model="modelData3.efficiency" type="number" style="width: 130px"></el-input>
  260. </el-form-item>
  261. </el-form>
  262. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  263. <el-form-item :label="labels.utilization">
  264. <el-input v-model="modelData3.utilization" type="number" style="width: 130px"></el-input>
  265. </el-form-item>
  266. <el-form-item :label="labels.active">
  267. <el-select filterable v-model="modelData3.active" style="width: 130px">
  268. <el-option label="Y" value="Y"></el-option>
  269. <el-option label="N" value="N"></el-option>
  270. </el-select>
  271. </el-form-item>
  272. <el-form-item>
  273. <span slot="label" style="" @click="getBaseList(91)"><a herf="#">{{labels.calendarID}}</a></span>
  274. <el-input v-model="modelData3.calendarID" style="width: 130px"></el-input>
  275. </el-form-item>
  276. </el-form>
  277. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  278. <el-form-item :label="labels.remark">
  279. <el-input v-model="modelData3.remark" style="width: 420px"></el-input>
  280. </el-form-item>
  281. </el-form>
  282. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  283. <el-button type="primary" @click="ResourceSave()">{{buttons.save}}</el-button>
  284. <el-button type="primary" @click="modelFlag3 = false">{{buttons.close}}</el-button>
  285. </el-footer>
  286. </el-dialog>
  287. <el-dialog :title="labels.partNo2" :close-on-click-modal="false" v-drag :visible.sync="partFlag" width="630px" >
  288. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  289. <el-form-item :label="labels.partNo">
  290. <el-input v-model="partData.partNo" readonly style="width: 130px"></el-input>
  291. </el-form-item>
  292. <el-form-item :label="labels.partDescription">
  293. <el-input v-model="partData.partDescription" readonly style="width: 260px"></el-input>
  294. </el-form-item>
  295. <el-form-item :label="labels.site">
  296. <el-input v-model="partData.site" readonly style="width: 130px"></el-input>
  297. </el-form-item>
  298. </el-form>
  299. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  300. <el-form-item :label="labels.createDate">
  301. <el-input v-model="partData.createDate" readonly style="width: 130px"></el-input>
  302. </el-form-item>
  303. <el-form-item :label="labels.umid">
  304. <el-input v-model="partData.umid" readonly style="width: 130px"></el-input>
  305. </el-form-item>
  306. <el-form-item :label="labels.active" style="margin-left: 130px">
  307. <el-input v-model="partData.active" readonly style="width: 130px;"></el-input>
  308. </el-form-item>
  309. </el-form>
  310. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  311. <el-form-item :label="labels.configurationTemplateID">
  312. <el-input v-model="partData.configurationTemplateID" readonly style="width: 130px"></el-input>
  313. </el-form-item>
  314. <el-form-item :label="labels.remark2">
  315. <el-input v-model="partData.remark" readonly style="width: 260px"></el-input>
  316. </el-form-item>
  317. </el-form>
  318. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  319. <el-button type="primary" @click="partFlag = false">{{buttons.close}}</el-button>
  320. </el-footer>
  321. </el-dialog>
  322. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  323. </div>
  324. </template>
  325. <script>
  326. import {
  327. getWorkCenterData,
  328. getWorkCenterDataDetail,
  329. getProLineNoDetail,
  330. saveWorkCenterData,
  331. deleteWorkCenterData,
  332. saveResource,
  333. deleteResource,
  334. setResourceFlag
  335. }from "@/api/base/site.js"
  336. import {
  337. searchPartNoData,
  338. } from "@/api/base/site.js"
  339. import Chooselist from '@/views/modules/common/Chooselist'
  340. import {
  341. searchFunctionButtonList,
  342. } from "@/api/sysLanguage.js"
  343. var functionId='103004';
  344. export default {
  345. //加工中心
  346. name: "workCenter",
  347. components: {
  348. Chooselist
  349. },
  350. data() {
  351. return {
  352. labels: {
  353. workCenterNo:'加工中心编码:',
  354. workCenterDesc:'名称:',
  355. site:'工厂编号:',
  356. active:'是否在用:',
  357. base:'基本信息',
  358. workCenterType:'加工中心类型:',
  359. proLineNo:'生产线编码:',
  360. productionLineDesc:'生产线名称:',
  361. canCreateNewRollFlag:'是否可以创建新卷:',
  362. createdDate:'新增日期:',
  363. remark:'备注:',
  364. needSetupFlag:'生产是否需要调机:',
  365. partInvolved:'涉及产品',
  366. dataList:'数据表',
  367. workCenter:'加工中心',
  368. inner:'内部',
  369. outer:'外部',
  370. chooseDate:'选择日期',
  371. resource:'机台维护',
  372. resourceID:'机台编码:',
  373. resourceDesc:'机台名称:',
  374. efficiency:'效率:',
  375. utilization:'利用率:',
  376. calendarID:'工作日历编码:',
  377. partNo:'物料编码:',
  378. partNo2:'物料编码',
  379. partDescription:'物料名称:',
  380. createDate:'新增日期:',
  381. umid:'计量单位:',
  382. configurationTemplateID:'客户名称:',
  383. remark2:'客户产品料号:',
  384. resource2:'机台',
  385. do:'操作',
  386. error:'错误',
  387. true:'确定',
  388. point:'提示',
  389. cancel:'取消',
  390. doYes:'操作成功',
  391. resourceIn:'请选择机台!',
  392. workCenterNoChoose:'请先选择加工中心!',
  393. resourceIDIn:'请输入机台编码!',
  394. resourceDescIn:'请输入机台名称!',
  395. efficiencyIn:'请输入效率!',
  396. utilizationIn:'请输入利用率!',
  397. activeIn:'请输入是否在用!',
  398. calendarIDIn:'请输入工作日编码!',
  399. virturlFlagAsk1:'是否将该机台设为虚拟机台?',
  400. virturlFlagAsk2:'是否将该机台设为常规机台?',
  401. deleteResourceAsk:'是否删除此机台?',
  402. rollIn:'请选择卷!',
  403. partNot:'该物料编码不存在',
  404. workCenterNoIn:'请输入加工中心编码!',
  405. workCenterDescIn:'请输入加工中心名称!',
  406. siteIn:'请输入工厂编码!',
  407. createdDateIn:'请选择新增日期!',
  408. workCenterDeleteAsk:'是否删除此加工中心',
  409. },
  410. buttons:{
  411. search:'查询',
  412. download:'导出',
  413. list:'列表',
  414. add:'新增',
  415. partInfo:'物料信息',
  416. jumpCalendar:'工作日历',
  417. update:'编辑',
  418. delete:'删除',
  419. setResource:'设为虚拟/常规机台',
  420. close:'关闭',
  421. save:'保存',
  422. download2:'导出机台'
  423. },
  424. queryButton: {
  425. functionId: functionId,
  426. table_id: '*',
  427. languageCode: this.$i18n.locale,
  428. objectType: 'button'
  429. },
  430. queryLabel: {
  431. functionId: functionId,
  432. table_id: '*',
  433. languageCode: this.$i18n.locale,
  434. objectType: 'label'
  435. },
  436. tagNo:'',
  437. currentRow:null,
  438. partFlag:false,
  439. partData:{
  440. partNo:'',
  441. partDescription:'',
  442. site:'',
  443. createDate:'',
  444. umid:'',
  445. active:'',
  446. configurationTemplateID:'',
  447. modelFlag:'',
  448. },
  449. model3InputFlag:false,
  450. currentRow2:null,
  451. // 导出 start
  452. exportData: [],
  453. exportName: "加工中心涉及产品"+this.dayjs().format('YYYYMMDDHHmmss'),
  454. exportHeader: ["加工中心涉及产品"],
  455. exportFooter: [],
  456. // 导出 end
  457. // 导出 start
  458. exportData2: [],
  459. exportName2: "加工中心机台"+this.dayjs().format('YYYYMMDDHHmmss'),
  460. exportHeader2: ["加工中心机台"],
  461. exportFooter2: [],
  462. // 导出 end
  463. activeName:'first',
  464. height: 200,
  465. modelFlag3:false,
  466. modelFlag2:false,
  467. modelFlag:false,
  468. modelInputFlag:true,
  469. selectList:[],
  470. modelData: {
  471. add:'',
  472. workCenterNo:'',
  473. workCenterDesc:'',
  474. site:'',
  475. active:'',
  476. workCenterType:'',
  477. proLineNo:'',
  478. productionLineDesc:'',
  479. canCreateNewRollFlag:'',
  480. createdDate:'',
  481. remark:'',
  482. needSetupFlag:'',
  483. user:this.$store.state.user.name,
  484. },
  485. modelData2: {
  486. add:'',
  487. workCenterNo:'',
  488. workCenterDesc:'',
  489. site:'',
  490. active:'',
  491. workCenterType:'',
  492. proLineNo:'',
  493. productionLineDesc:'',
  494. canCreateNewRollFlag:'',
  495. createdDate:'',
  496. remark:'',
  497. needSetupFlag:'',
  498. user:this.$store.state.user.name,
  499. },
  500. modelData3:{
  501. workCenterNo:'',
  502. site:'',
  503. resourceID:'',
  504. resourceDesc:'',
  505. efficiency:'',
  506. utilization:'',
  507. active:'',
  508. calendarID:'',
  509. remark:'',
  510. add:'',
  511. },
  512. dataList:[],
  513. dataList2:[],
  514. dataList3:[],
  515. dataListLoading: false,
  516. columnList: [
  517. {
  518. userId: this.$store.state.user.name,
  519. functionId: 6029,
  520. serialNumber: '6029TablePartNo',
  521. tableId: "6029Table",
  522. tableName: "加工中心涉及产品表",
  523. columnProp: "partNo",
  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: false,
  533. columnWidth: 120
  534. },
  535. {
  536. userId: this.$store.state.user.name,
  537. functionId: 6029,
  538. serialNumber: '6029TableRevNo',
  539. tableId: "6029Table",
  540. tableName: "加工中心涉及产品表",
  541. columnProp: "revNo",
  542. headerAlign: "center",
  543. align: "left",
  544. columnLabel: "版本号",
  545. columnHidden: false,
  546. columnImage: false,
  547. columnSortable: false,
  548. sortLv: 0,
  549. status: true,
  550. fixed: false,
  551. columnWidth: 60
  552. },
  553. {
  554. userId: this.$store.state.user.name,
  555. functionId: 6029,
  556. serialNumber: '6029TableItemNo',
  557. tableId: "6029Table",
  558. tableName: "加工中心涉及产品表",
  559. columnProp: "itemNo",
  560. headerAlign: "center",
  561. align: "right",
  562. columnLabel: "工序号",
  563. columnHidden: false,
  564. columnImage: false,
  565. columnSortable: false,
  566. sortLv: 0,
  567. status: true,
  568. fixed: false,
  569. columnWidth: 60
  570. },
  571. {
  572. userId: this.$store.state.user.name,
  573. functionId: 6029,
  574. serialNumber: '6029TableOperationDesc',
  575. tableId: "6029Table",
  576. tableName: "加工中心涉及产品表",
  577. columnProp: "operationDesc",
  578. headerAlign: "center",
  579. align: "left",
  580. columnLabel: "工序名称",
  581. columnHidden: false,
  582. columnImage: false,
  583. columnSortable: false,
  584. sortLv: 0,
  585. status: true,
  586. fixed: false,
  587. columnWidth: 160
  588. },
  589. {
  590. userId: this.$store.state.user.name,
  591. functionId: 6029,
  592. serialNumber: '6029TableMachSetuptime',
  593. tableId: "6029Table",
  594. tableName: "加工中心涉及产品表",
  595. columnProp: "machSetuptime",
  596. headerAlign: "center",
  597. align: "right",
  598. columnLabel: "计划调试时间",
  599. columnHidden: false,
  600. columnImage: false,
  601. columnSortable: false,
  602. sortLv: 0,
  603. status: true,
  604. fixed: false,
  605. columnWidth: 100
  606. },
  607. {
  608. userId: this.$store.state.user.name,
  609. functionId: 6029,
  610. serialNumber: '6029TableMachRunFactor',
  611. tableId: "6029Table",
  612. tableName: "加工中心涉及产品表",
  613. columnProp: "machRunFactor",
  614. headerAlign: "center",
  615. align: "right",
  616. columnLabel: "单位产出量",
  617. columnHidden: false,
  618. columnImage: false,
  619. columnSortable: false,
  620. sortLv: 0,
  621. status: true,
  622. fixed: false,
  623. columnWidth: 100
  624. },
  625. {
  626. userId: this.$store.state.user.name,
  627. functionId: 6029,
  628. serialNumber: '6029TableFactorUnit',
  629. tableId: "6029Table",
  630. tableName: "加工中心涉及产品表",
  631. columnProp: "factorUnit",
  632. headerAlign: "center",
  633. align: "left",
  634. columnLabel: "产出类型",
  635. columnHidden: false,
  636. columnImage: false,
  637. columnSortable: false,
  638. sortLv: 0,
  639. status: true,
  640. fixed: false,
  641. columnWidth: 80
  642. },
  643. {
  644. userId: this.$store.state.user.name,
  645. functionId: 6029,
  646. serialNumber: '6029TableCrewsize',
  647. tableId: "6029Table",
  648. tableName: "加工中心涉及产品表",
  649. columnProp: "crewsize",
  650. headerAlign: "center",
  651. align: "right",
  652. columnLabel: "操作工人数",
  653. columnHidden: false,
  654. columnImage: false,
  655. columnSortable: false,
  656. sortLv: 0,
  657. status: true,
  658. fixed: false,
  659. columnWidth: 100
  660. },
  661. {
  662. userId: this.$store.state.user.name,
  663. functionId: 6029,
  664. serialNumber: '6029TableEfficiency',
  665. tableId: "6029Table",
  666. tableName: "加工中心涉及产品表",
  667. columnProp: "efficiency",
  668. headerAlign: "center",
  669. align: "right",
  670. columnLabel: "效率",
  671. columnHidden: false,
  672. columnImage: false,
  673. columnSortable: false,
  674. sortLv: 0,
  675. status: true,
  676. fixed: false,
  677. columnWidth: 50
  678. },
  679. {
  680. userId: this.$store.state.user.name,
  681. functionId: 6029,
  682. serialNumber: '6029TableStatus',
  683. tableId: "6029Table",
  684. tableName: "加工中心涉及产品表",
  685. columnProp: "status",
  686. headerAlign: "center",
  687. align: "left",
  688. columnLabel: "状态",
  689. columnHidden: false,
  690. columnImage: false,
  691. columnSortable: false,
  692. sortLv: 0,
  693. status: true,
  694. fixed: false,
  695. columnWidth: 50
  696. },
  697. {
  698. userId: this.$store.state.user.name,
  699. functionId: 6029,
  700. serialNumber: '6029TableRoutingType',
  701. tableId: "6029Table",
  702. tableName: "加工中心涉及产品表",
  703. columnProp: "routingType",
  704. headerAlign: "center",
  705. align: "left",
  706. columnLabel: "工序类别",
  707. columnHidden: false,
  708. columnImage: false,
  709. columnSortable: false,
  710. sortLv: 0,
  711. status: true,
  712. fixed: false,
  713. columnWidth: 80
  714. },
  715. {
  716. userId: this.$store.state.user.name,
  717. functionId: 6029,
  718. serialNumber: '6029TableRemark',
  719. tableId: "6029Table",
  720. tableName: "加工中心涉及产品表",
  721. columnProp: "remark",
  722. headerAlign: "center",
  723. align: "left",
  724. columnLabel: "备注",
  725. columnHidden: false,
  726. columnImage: false,
  727. columnSortable: false,
  728. sortLv: 0,
  729. status: true,
  730. fixed: false,
  731. columnWidth: 300
  732. }
  733. ],
  734. columnList2: [
  735. {
  736. userId: this.$store.state.user.name,
  737. functionId: 6029,
  738. serialNumber: '6029Table2ResourceID',
  739. tableId: "6029Table2",
  740. tableName: "加工中心涉及机台表",
  741. columnProp: "resourceID",
  742. headerAlign: "center",
  743. align: "left",
  744. columnLabel: "机台编码",
  745. columnHidden: false,
  746. columnImage: false,
  747. columnSortable: false,
  748. sortLv: 0,
  749. status: true,
  750. fixed: false,
  751. columnWidth: 120
  752. },
  753. {
  754. userId: this.$store.state.user.name,
  755. functionId: 6029,
  756. serialNumber: '6029Table2ResourceDesc',
  757. tableId: "6029Table2",
  758. tableName: "加工中心涉及机台表",
  759. columnProp: "resourceDesc",
  760. headerAlign: "center",
  761. align: "left",
  762. columnLabel: "机台名称",
  763. columnHidden: false,
  764. columnImage: false,
  765. columnSortable: false,
  766. sortLv: 0,
  767. status: true,
  768. fixed: false,
  769. columnWidth: 150
  770. },
  771. {
  772. userId: this.$store.state.user.name,
  773. functionId: 6029,
  774. serialNumber: '6029Table2Efficiency',
  775. tableId: "6029Table2",
  776. tableName: "加工中心涉及机台表",
  777. columnProp: "efficiency",
  778. headerAlign: "center",
  779. align: "right",
  780. columnLabel: "效率",
  781. columnHidden: false,
  782. columnImage: false,
  783. columnSortable: false,
  784. sortLv: 0,
  785. status: true,
  786. fixed: false,
  787. columnWidth: 80
  788. },
  789. {
  790. userId: this.$store.state.user.name,
  791. functionId: 6029,
  792. serialNumber: '6029Table2Utilization',
  793. tableId: "6029Table2",
  794. tableName: "加工中心涉及机台表",
  795. columnProp: "utilization",
  796. headerAlign: "center",
  797. align: "right",
  798. columnLabel: "利用率",
  799. columnHidden: false,
  800. columnImage: false,
  801. columnSortable: false,
  802. sortLv: 0,
  803. status: true,
  804. fixed: false,
  805. columnWidth: 80
  806. },
  807. {
  808. userId: this.$store.state.user.name,
  809. functionId: 6029,
  810. serialNumber: '6029Table2Active',
  811. tableId: "6029Table2",
  812. tableName: "加工中心涉及机台表",
  813. columnProp: "active",
  814. headerAlign: "center",
  815. align: "left",
  816. columnLabel: "在用",
  817. columnHidden: false,
  818. columnImage: false,
  819. columnSortable: false,
  820. sortLv: 0,
  821. status: true,
  822. fixed: false,
  823. columnWidth: 60
  824. },
  825. {
  826. userId: this.$store.state.user.name,
  827. functionId: 6029,
  828. serialNumber: '6029Table2CreatedDate',
  829. tableId: "6029Table2",
  830. tableName: "加工中心涉及机台表",
  831. columnProp: "createdDate",
  832. headerAlign: "center",
  833. align: "left",
  834. columnLabel: "新增日期",
  835. columnHidden: false,
  836. columnImage: false,
  837. columnSortable: false,
  838. sortLv: 0,
  839. status: true,
  840. fixed: false,
  841. columnWidth: 200
  842. },
  843. {
  844. userId: this.$store.state.user.name,
  845. functionId: 6029,
  846. serialNumber: '6029Table2Remark',
  847. tableId: "6029Table2",
  848. tableName: "加工中心涉及机台表",
  849. columnProp: "remark",
  850. headerAlign: "center",
  851. align: "left",
  852. columnLabel: "备注",
  853. columnHidden: false,
  854. columnImage: false,
  855. columnSortable: false,
  856. sortLv: 0,
  857. status: true,
  858. fixed: false,
  859. columnWidth: 400
  860. },
  861. {
  862. userId: this.$store.state.user.name,
  863. functionId: 6029,
  864. serialNumber: '6029Table2CalendarID',
  865. tableId: "6029Table2",
  866. tableName: "加工中心涉及机台表",
  867. columnProp: "calendarID",
  868. headerAlign: "center",
  869. align: "left",
  870. columnLabel: "工作日历编码",
  871. columnHidden: false,
  872. columnImage: false,
  873. columnSortable: false,
  874. sortLv: 0,
  875. status: true,
  876. fixed: false,
  877. columnWidth: 120
  878. },
  879. {
  880. userId: this.$store.state.user.name,
  881. functionId: 6029,
  882. serialNumber: '6029Table2VirturlFlag',
  883. tableId: "6029Table2",
  884. tableName: "加工中心涉及机台表",
  885. columnProp: "virturlFlag",
  886. headerAlign: "center",
  887. align: "left",
  888. columnLabel: "虚拟机台",
  889. columnHidden: false,
  890. columnImage: false,
  891. columnSortable: false,
  892. sortLv: 0,
  893. status: true,
  894. fixed: false,
  895. columnWidth: 80
  896. }
  897. ],
  898. columnList3: [
  899. {
  900. userId: this.$store.state.user.name,
  901. functionId: 6029,
  902. serialNumber: '6029Table3WorkCenterNo',
  903. tableId: "6029Table3",
  904. tableName: "加工中心表",
  905. columnProp: "workCenterNo",
  906. headerAlign: "center",
  907. align: "left",
  908. columnLabel: "加工中心编码",
  909. columnHidden: false,
  910. columnImage: false,
  911. columnSortable: false,
  912. sortLv: 0,
  913. status: true,
  914. fixed: false,
  915. columnWidth: 120
  916. },
  917. {
  918. userId: this.$store.state.user.name,
  919. functionId: 6029,
  920. serialNumber: '6029Table3WorkCenterDesc',
  921. tableId: "6029Table3",
  922. tableName: "加工中心表",
  923. columnProp: "workCenterDesc",
  924. headerAlign: "center",
  925. align: "left",
  926. columnLabel: "加工中心名称",
  927. columnHidden: false,
  928. columnImage: false,
  929. columnSortable: false,
  930. sortLv: 0,
  931. status: true,
  932. fixed: false,
  933. columnWidth: 200
  934. },
  935. {
  936. userId: this.$store.state.user.name,
  937. functionId: 6029,
  938. serialNumber: '6029Table3WorkCenterType',
  939. tableId: "6029Table3",
  940. tableName: "加工中心表",
  941. columnProp: "workCenterType",
  942. headerAlign: "center",
  943. align: "left",
  944. columnLabel: "加工中心类型",
  945. columnHidden: false,
  946. columnImage: false,
  947. columnSortable: false,
  948. sortLv: 0,
  949. status: true,
  950. fixed: false,
  951. columnWidth: 100
  952. },
  953. {
  954. userId: this.$store.state.user.name,
  955. functionId: 6029,
  956. serialNumber: '6029Table3Active',
  957. tableId: "6029Table3",
  958. tableName: "加工中心表",
  959. columnProp: "active",
  960. headerAlign: "center",
  961. align: "left",
  962. columnLabel: "在用",
  963. columnHidden: false,
  964. columnImage: false,
  965. columnSortable: false,
  966. sortLv: 0,
  967. status: true,
  968. fixed: false,
  969. columnWidth: 40
  970. },
  971. {
  972. userId: this.$store.state.user.name,
  973. functionId: 6029,
  974. serialNumber: '6029Table3Site',
  975. tableId: "6029Table3",
  976. tableName: "加工中心表",
  977. columnProp: "site",
  978. headerAlign: "center",
  979. align: "left",
  980. columnLabel: "工厂编号",
  981. columnHidden: false,
  982. columnImage: false,
  983. columnSortable: false,
  984. sortLv: 0,
  985. status: true,
  986. fixed: false,
  987. columnWidth: 80
  988. }
  989. ],
  990. authEdit: false,
  991. authAdd: false,
  992. authDelete: false,
  993. menuId: this.$route.meta.menuId,
  994. }
  995. },
  996. mounted() {
  997. this.$nextTick(() => {
  998. this.height = window.innerHeight - 225;
  999. })
  1000. },
  1001. watch: {
  1002. '$route' (to, from) {
  1003. if(localStorage.getItem('workCenterNo')!=undefined){
  1004. this.jump();
  1005. }
  1006. },
  1007. modelData2: {
  1008. deep: true,
  1009. handler: function (newV, oldV) {
  1010. this.modelData2.proLineNo = this.modelData2.proLineNo.toUpperCase()
  1011. this.modelData2.workCenterNo = this.modelData2.workCenterNo.toUpperCase()
  1012. }
  1013. },
  1014. modelData3: {
  1015. deep: true,
  1016. handler: function (newV, oldV) {
  1017. this.modelData3.resourceID = this.modelData3.resourceID.toUpperCase()
  1018. this.modelData3.calendarID = this.modelData3.calendarID.toUpperCase()
  1019. }
  1020. },
  1021. },
  1022. methods: {
  1023. editResource(){
  1024. if(this.currentRow2==null){
  1025. this.$alert(this.labels.resourceIn,this.labels.error, {
  1026. confirmButtonText: this.labels.true
  1027. })
  1028. return false;
  1029. }
  1030. this.modelData3={
  1031. workCenterNo:this.modelData.workCenterNo,
  1032. site:this.modelData.site,
  1033. resourceID:this.currentRow2.resourceID,
  1034. resourceDesc:this.currentRow2.resourceDesc,
  1035. efficiency:this.currentRow2.efficiency,
  1036. utilization:this.currentRow2.utilization,
  1037. active:this.currentRow2.active,
  1038. calendarID:this.currentRow2.calendarID,
  1039. remark:this.currentRow2.remark,
  1040. add:1,
  1041. };
  1042. this.model3InputFlag=true;
  1043. this.modelFlag3=true;
  1044. },
  1045. addResource(){
  1046. if(this.modelData.workCenterNo==''||this.modelData.workCenterNo==null){
  1047. this.$alert(this.labels.workCenterNoChoose,this.labels.error, {
  1048. confirmButtonText: this.labels.true
  1049. })
  1050. return false;
  1051. }
  1052. this.modelData3={
  1053. workCenterNo:this.modelData.workCenterNo,
  1054. site:this.modelData.site,
  1055. resourceID:'',
  1056. resourceDesc:'',
  1057. efficiency:'',
  1058. utilization:'',
  1059. active:'Y',
  1060. calendarID:'',
  1061. remark:'',
  1062. add:0,
  1063. };
  1064. this.model3InputFlag=false;
  1065. this.modelFlag3=true;
  1066. },
  1067. ResourceSave(){
  1068. if(this.modelData3.resourceID==''||this.modelData3.resourceID==null){
  1069. this.$alert(this.labels.resourceIDIn,this.labels.error, {
  1070. confirmButtonText: this.labels.true
  1071. })
  1072. return false;
  1073. }
  1074. if(this.modelData3.resourceDesc==''||this.modelData3.resourceDesc==null){
  1075. this.$alert(this.labels.resourceDescIn,this.labels.error, {
  1076. confirmButtonText: this.labels.true
  1077. })
  1078. return false;
  1079. }
  1080. if(this.modelData3.efficiency==''||this.modelData3.efficiency==null){
  1081. this.$alert(this.labels.efficiencyIn,this.labels.error, {
  1082. confirmButtonText: this.labels.true
  1083. })
  1084. return false;
  1085. }
  1086. if(this.modelData3.utilization==''||this.modelData3.utilization==null){
  1087. this.$alert(this.labels.utilizationIn,this.labels.error, {
  1088. confirmButtonText: this.labels.true
  1089. })
  1090. return false;
  1091. }
  1092. if(this.modelData3.active==''||this.modelData3.active==null){
  1093. this.$alert(this.labels.activeIn,this.labels.error, {
  1094. confirmButtonText: this.labels.true
  1095. })
  1096. return false;
  1097. }
  1098. if(this.modelData3.calendarID==''||this.modelData3.calendarID==null){
  1099. this.$alert(this.labels.calendarIDIn,this.labels.error, {
  1100. confirmButtonText: this.labels.true
  1101. })
  1102. return false;
  1103. }
  1104. saveResource(this.modelData3).then(({data}) => {
  1105. if (data && data.code == 200) {
  1106. this.modelFlag3 = false
  1107. getWorkCenterDataDetail(this.modelData).then(({data}) => {
  1108. this.dataList2 = data.rows2;
  1109. })
  1110. this.$message.success(this.labels.doYes)
  1111. } else {
  1112. this.$alert(data.msg, this.labels.error, {
  1113. confirmButtonText: this.labels.true
  1114. })
  1115. }
  1116. })
  1117. },
  1118. setResource(){
  1119. if(this.currentRow2==null){
  1120. this.$alert(this.labels.resourceIn, this.labels.error, {
  1121. confirmButtonText: this.labels.true
  1122. })
  1123. return false;
  1124. }
  1125. let msg=this.labels.virturlFlagAsk1;
  1126. if(this.currentRow2.virturlFlag=='Y'){
  1127. msg=this.labels.virturlFlagAsk2;
  1128. }
  1129. this.$confirm(msg, this.labels.point, {
  1130. confirmButtonText: this.labels.true,
  1131. cancelButtonText: this.labels.cancel,
  1132. type: 'warning'
  1133. }).then(() => {
  1134. setResourceFlag(this.currentRow2).then(({data}) => {
  1135. if (data && data.code == 200) {
  1136. getWorkCenterDataDetail(this.modelData).then(({data}) => {
  1137. this.dataList2 = data.rows2;
  1138. })
  1139. this.$message.success(this.labels.doYes)
  1140. } else {
  1141. this.$alert(data.msg, this.labels.error, {
  1142. confirmButtonText: this.labels.true
  1143. })
  1144. }
  1145. })
  1146. })
  1147. },
  1148. deleteCalendar(){
  1149. if(this.currentRow2==null){
  1150. this.$alert(this.labels.resourceIn, this.labels.error, {
  1151. confirmButtonText: this.labels.true
  1152. })
  1153. return false;
  1154. }
  1155. this.$confirm( this.labels.deleteResourceAsk, this.labels.point, {
  1156. confirmButtonText: this.labels.true,
  1157. cancelButtonText: this.labels.cancel,
  1158. type: 'warning'
  1159. }).then(() => {
  1160. deleteResource(this.currentRow2).then(({data}) => {
  1161. if (data && data.code == 200) {
  1162. getWorkCenterDataDetail(this.modelData).then(({data}) => {
  1163. this.dataList2 = data.rows2;
  1164. })
  1165. this.$message.success(this.labels.doYes)
  1166. } else {
  1167. this.$alert(data.msg, this.labels.error, {
  1168. confirmButtonText: this.labels.true
  1169. })
  1170. }
  1171. })
  1172. })
  1173. },
  1174. getBaseData(val){
  1175. if (this.tagNo === 25){
  1176. this.modelData2.proLineNo = val.ProLineNo
  1177. }
  1178. if (this.tagNo === 91){
  1179. this.modelData3.calendarID = val.CalendarID
  1180. }
  1181. },
  1182. // 获取基础数据列表
  1183. getBaseList(val){
  1184. this.tagNo = val
  1185. this.$nextTick(() => {
  1186. let strVal = "";
  1187. if (val === 25){
  1188. strVal = this.modelData2.proLineNo
  1189. }
  1190. if (val === 91){
  1191. strVal = this.modelData3.calendarID
  1192. }
  1193. this.$refs.baseList.init(val,strVal)
  1194. })
  1195. },
  1196. clickData2(row){
  1197. this.currentRow2 = JSON.parse(JSON.stringify(row));
  1198. },
  1199. jumpCalendar(){
  1200. if(this.currentRow2==null){
  1201. this.$alert(this.labels.resourceIn, this.labels.error, {
  1202. confirmButtonText: this.labels.true
  1203. })
  1204. return false;
  1205. }
  1206. let inData={user:this.$store.state.user.name,site:this.currentRow2.site,calendarId:this.currentRow2.calendarID};
  1207. localStorage.setItem('calendar', JSON.stringify(inData))
  1208. this.$router.replace('base-calendar')
  1209. },
  1210. getPartDetail(){
  1211. if(this.currentRow==null){
  1212. this.$alert(this.labels.rollIn, this.labels.error, {
  1213. confirmButtonText: this.labels.true
  1214. })
  1215. return false;
  1216. }
  1217. let inData={
  1218. user:this.$store.state.user.name,
  1219. site:this.currentRow.site,
  1220. partNo:this.currentRow.partNo
  1221. }
  1222. searchPartNoData(inData).then(({data}) => {
  1223. if (data.rows.length==0){
  1224. this.$alert(this.labels.partNot, this.labels.error, {
  1225. confirmButtonText: this.labels.true
  1226. })
  1227. return false;
  1228. }
  1229. this.partData = data.rows[0];
  1230. this.partFlag=true;
  1231. })
  1232. },
  1233. first(){
  1234. if(localStorage.getItem('workCenterNo')!=undefined){
  1235. this.jump();
  1236. }
  1237. },
  1238. getData(){
  1239. let inData={
  1240. user:this.$store.state.user.name
  1241. }
  1242. getWorkCenterData(inData).then(({data}) => {
  1243. this.dataList3 = data.rows;
  1244. this.modelFlag2=true;
  1245. })
  1246. },
  1247. jump(){
  1248. let data=JSON.parse(localStorage.getItem('workCenterNo'));
  1249. localStorage.removeItem('workCenterNo');
  1250. getWorkCenterData(data).then(({data}) => {
  1251. this.dataList3 = data.rows;
  1252. this.modelData=data.rows[0];
  1253. getWorkCenterDataDetail(this.modelData).then(({data}) => {
  1254. this.dataList2 = data.rows2;
  1255. this.dataList = data.rows1;
  1256. })
  1257. })
  1258. },
  1259. clickData(row){
  1260. this.currentRow = JSON.parse(JSON.stringify(row));
  1261. },
  1262. addModal(){
  1263. this.modelData2={
  1264. add:'',
  1265. workCenterNo:'',
  1266. workCenterDesc:'',
  1267. site:this.$store.state.user.site,
  1268. active:'',
  1269. workCenterType:'',
  1270. proLineNo:'',
  1271. productionLineDesc:'',
  1272. canCreateNewRollFlag:'',
  1273. createdDate:'',
  1274. remark:'',
  1275. needSetupFlag:'',
  1276. user:this.$store.state.user.name,
  1277. },
  1278. this.modelData2.add=0;
  1279. this.modelInputFlag=false;
  1280. this.modelData2.active='Y';
  1281. this.modelData2.canCreateNewRollFlag='Y';
  1282. this.modelData2.needSetupFlag='Y';
  1283. this.modelData2.workCenterType='内部',
  1284. this.modelData2.createdDate=new Date();
  1285. this.modelFlag=true;
  1286. },
  1287. editModel(row){
  1288. this.modelData2=JSON.parse(JSON.stringify(row));
  1289. this.modelData2.add=1;
  1290. this.modelInputFlag=true;
  1291. this.modelFlag=true;
  1292. },
  1293. ModelSave(){
  1294. if(this.modelData2.workCenterNo==''||this.modelData2.workCenterNo==null){
  1295. this.$alert(this.labels.workCenterNoIn, this.labels.error, {
  1296. confirmButtonText: this.labels.true
  1297. })
  1298. return false;
  1299. }
  1300. if(this.modelData2.workCenterDesc==''||this.modelData2.workCenterDesc==null){
  1301. this.$alert(this.labels.workCenterDescIn, this.labels.error, {
  1302. confirmButtonText: this.labels.true
  1303. })
  1304. return false;
  1305. }
  1306. if(this.modelData2.site==''||this.modelData2.site==null){
  1307. this.$alert(this.labels.siteIn, this.labels.error, {
  1308. confirmButtonText: this.labels.true
  1309. })
  1310. return false;
  1311. }
  1312. if(this.modelData2.createdDate==''||this.modelData2.createdDate==null){
  1313. this.$alert(this.labels.createdDateIn, this.labels.error, {
  1314. confirmButtonText: this.labels.true
  1315. })
  1316. return false;
  1317. }
  1318. this.modelData2.user=this.$store.state.user.name;
  1319. saveWorkCenterData(this.modelData2).then(({data}) => {
  1320. if (data && data.code == 200) {
  1321. this.modelFlag = false
  1322. this.getData();
  1323. this.$message.success(this.labels.doYes)
  1324. } else {
  1325. this.$alert(data.msg, this.labels.error, {
  1326. confirmButtonText: this.labels.true
  1327. })
  1328. }
  1329. })
  1330. },
  1331. deleteData(row){
  1332. this.$confirm( this.labels.workCenterDeleteAsk, this.labels.point, {
  1333. confirmButtonText: this.labels.true,
  1334. cancelButtonText: this.labels.cancel,
  1335. type: 'warning'
  1336. }).then(() => {
  1337. let inData = {
  1338. workCenterNo: row.workCenterNo,
  1339. site:row.site
  1340. }
  1341. deleteWorkCenterData(inData).then(({data}) => {
  1342. if (data && data.code == 200) {
  1343. this.modelFlag = false
  1344. this.getData();
  1345. this.$message.success( this.labels.doYes)
  1346. } else {
  1347. this.$alert(data.msg, this.labels.error, {
  1348. confirmButtonText: this.labels.true
  1349. })
  1350. }
  1351. })
  1352. })
  1353. },
  1354. tableHanddle(row){
  1355. this.modelData=row;
  1356. this.modelFlag2=false;
  1357. getWorkCenterDataDetail(this.modelData).then(({data}) => {
  1358. this.dataList2 = data.rows2;
  1359. this.dataList = data.rows1;
  1360. })
  1361. },
  1362. getProLineNo(){
  1363. let inData={
  1364. site : this.$store.state.user.site,
  1365. proLineNo : this.modelData2.proLineNo
  1366. }
  1367. getProLineNoDetail(inData).then(({data}) => {
  1368. let outList = data.rows
  1369. if (outList.length>0){
  1370. this.modelData2.productionLineDesc=outList[0].proLineDesc;
  1371. this.modelData2=JSON.parse(JSON.stringify(this.modelData2));
  1372. }else {
  1373. this.modelData2.productionLineDesc='';
  1374. }
  1375. })
  1376. },
  1377. //导出excel
  1378. createExportData() {
  1379. return this.dataList;
  1380. },
  1381. startDownload() {
  1382. // this.exportData = this.dataList
  1383. },
  1384. finishDownload() {
  1385. },
  1386. fields() {
  1387. let json = "{"
  1388. this.columnList.forEach((item, index) => {
  1389. if (index == this.columnList.length - 1) {
  1390. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1391. } else {
  1392. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1393. }
  1394. })
  1395. json += "}"
  1396. let s = eval("(" + json + ")")
  1397. return s
  1398. },
  1399. // 导出 end
  1400. //导出excel
  1401. createExportData2() {
  1402. return this.dataList2;
  1403. },
  1404. startDownload2() {
  1405. // this.exportData = this.dataList
  1406. },
  1407. finishDownload2() {
  1408. },
  1409. fields2() {
  1410. let json = "{"
  1411. this.columnList2.forEach((item, index) => {
  1412. if (index == this.columnList2.length - 1) {
  1413. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1414. } else {
  1415. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1416. }
  1417. })
  1418. json += "}"
  1419. let s = eval("(" + json + ")")
  1420. return s
  1421. },
  1422. // 导出 end
  1423. //获取按钮的权限数据
  1424. getButtonAuthData(){
  1425. let updateFlag = this.isAuth(this.menuId+":revise");
  1426. let fullControFlag = this.isAuth(this.menuId+":fullContro");
  1427. let deleteFlag = this.isAuth(this.menuId+":remove");
  1428. //处理页面的权限数据
  1429. this.authEdit = !updateFlag ||!fullControFlag;
  1430. this.authAdd = !fullControFlag;
  1431. this.authDelete = !deleteFlag;
  1432. },
  1433. //多语言
  1434. getMultiLanguageList() {
  1435. //首先查询当前按钮的多语言
  1436. searchFunctionButtonList(this.queryButton).then(({data}) => {
  1437. if (JSON.stringify(data.data) != '{}') {
  1438. this.buttons = data.data
  1439. } else {
  1440. // saveButtonList(this.buttonList).then(({data}) => {
  1441. // })
  1442. }
  1443. });
  1444. //其次查询当前标签的多语言
  1445. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  1446. if (JSON.stringify(data.data) != '{}') {
  1447. this.labels = data.data
  1448. } else {
  1449. // saveButtonList(this.buttonList).then(({data}) => {
  1450. // })
  1451. }
  1452. });
  1453. },
  1454. },
  1455. created() {
  1456. this.first();
  1457. //获取按钮的权限
  1458. this.getButtonAuthData();
  1459. //
  1460. this.getMultiLanguageList()//刷新按钮
  1461. }
  1462. }
  1463. </script>
  1464. <style scoped>
  1465. </style>