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.

3407 lines
120 KiB

  1. <template>
  2. <div class="mod-config">
  3. <div>
  4. <span @click="favoriteFunction()">
  5. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
  6. </span>
  7. </div>
  8. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  9. <el-form-item :label="'BU'">
  10. <el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 130px">
  11. <el-option
  12. v-for = "i in userBuList"
  13. :key = "i.buNo"
  14. :label = "i.buDesc"
  15. :value = "i.buDesc">
  16. </el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item :label="'项目编码'">
  20. <el-input v-model="searchData.projectNo" style="width: 120px"></el-input>
  21. </el-form-item>
  22. <el-form-item :label="'项目名称'">
  23. <el-input v-model="searchData.projectDesc" style="width: 120px"></el-input>
  24. </el-form-item>
  25. <el-form-item :label="'客户编码'">
  26. <el-input v-model="searchData.customerNo" style="width: 120px"></el-input>
  27. </el-form-item>
  28. <el-form-item :label="'客户名称'">
  29. <el-input v-model="searchData.customerDesc" style="width: 120px"></el-input>
  30. </el-form-item>
  31. <el-form-item :label="'项目分类'">
  32. <el-select v-model="searchData.projectCategory" placeholder="请选择" clearable style="width: 130px">
  33. <el-option
  34. v-for = "i in projectCategoryList"
  35. :key = "i.projectCategory"
  36. :label = "i.projectCategory"
  37. :value = "i.projectCategory">
  38. </el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item :label="'项目状态'">
  42. <el-select v-model="searchData.status" placeholder="请选择" clearable style="width: 130px">
  43. <el-option
  44. v-for = "i in statusList"
  45. :key = "i.status"
  46. :label = "i.status"
  47. :value = "i.status">
  48. </el-option>
  49. </el-select>
  50. </el-form-item>
  51. <el-form-item :label="'立项日期:'">
  52. <el-date-picker
  53. style="width: 120px"
  54. v-model="searchData.startDate"
  55. type="date"
  56. value-format="yyyy-MM-dd"
  57. placeholder="选择日期">
  58. </el-date-picker>
  59. -
  60. <el-date-picker
  61. style="width: 120px"
  62. v-model="searchData.endDate"
  63. type="date"
  64. value-format="yyyy-MM-dd"
  65. placeholder="选择日期">
  66. </el-date-picker>
  67. </el-form-item>
  68. <!-- <el-form-item :label="'在用'">-->
  69. <!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
  70. <!-- <el-option label="全部" value=""></el-option>-->
  71. <!-- <el-option label="是" value="Y"></el-option>-->
  72. <!-- <el-option label="否" value="N"></el-option>-->
  73. <!-- </el-select>-->
  74. <!-- </el-form-item>-->
  75. <el-form-item :label="' '">
  76. <el-button @click="agencyMatter()">查询</el-button>
  77. <el-button type="primary" @click="addModal()">新增</el-button>
  78. </el-form-item>
  79. </el-form>
  80. <el-table
  81. :height="this.height + 100"
  82. :data="dataList"
  83. ref="mainTable"
  84. highlight-current-row
  85. @row-click="projectPartClickRow"
  86. @current-change="changeCurrentRow"
  87. border
  88. style="width: 100%;">
  89. <el-table-column
  90. v-for="(item,index) in columnList" :key="index"
  91. :sortable="item.columnSortable"
  92. :prop="item.columnProp"
  93. :header-align="item.headerAlign"
  94. :show-overflow-tooltip="item.showOverflowTooltip"
  95. :align="item.align"
  96. :fixed="item.fixed==''?false:item.fixed"
  97. :min-width="item.columnWidth"
  98. :label="item.columnLabel">
  99. <template slot-scope="scope">
  100. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  101. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  102. </template>
  103. </el-table-column>
  104. <el-table-column
  105. fixed="right"
  106. header-align="center"
  107. align="center"
  108. width="208"
  109. label="操作">
  110. <template slot-scope="scope">
  111. <a type="text" size="small" @click="addProjectPartModal(scope.row)">新增产品</a>
  112. <a v-if="scope.row.status !== '已量产'" type="text" size="small" @click="updateModal(scope.row)">修改</a>
  113. <a type="text" size="small" @click="eamProjectInfoDelete(scope.row)">删除</a>
  114. </template>
  115. </el-table-column>
  116. </el-table>
  117. <el-pagination
  118. @size-change="sizeChangeHandle"
  119. @current-change="currentChangeHandle"
  120. :current-page="pageIndex"
  121. :page-sizes="[20, 50, 100, 200, 500]"
  122. :page-size="pageSize"
  123. :total="totalPage"
  124. layout="total, sizes, prev, pager, next, jumper">
  125. </el-pagination>
  126. <el-dialog title="项目" :close-on-click-modal="false" @close="closeClear" v-drag :visible.sync="modalFlag" width="600px">
  127. <!-- <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  128. <!-- <el-form-item label="是否在用" prop="active" :rules="rules.activeType">-->
  129. <!-- <el-select filterable v-model="modalData.active" style="width: 140px">-->
  130. <!-- <el-option label="是" value="Y"></el-option>-->
  131. <!-- <el-option label="否" value="N"></el-option>-->
  132. <!-- </el-select>-->
  133. <!-- </el-form-item>-->
  134. <!-- </el-form>-->
  135. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  136. <el-form-item label="BU" prop="bu" :rules="rules.bu">
  137. <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 110px">
  138. <el-option
  139. v-for = "i in userBuList"
  140. :key = "i.buNo"
  141. :label = "i.buDesc"
  142. :value = "i.buNo">
  143. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  144. {{ i.buDesc }}
  145. </span>
  146. </el-option>
  147. </el-select>
  148. </el-form-item>
  149. <el-form-item label="项目编码" prop="projectNo" :rules="rules.projectNo">
  150. <el-input v-model="modalData.projectNo" :disabled="modalPartDisableFlag" style="width: 110px"></el-input>
  151. </el-form-item>
  152. <el-form-item label="项目名称" prop="projectDesc" v-if="!modalPartDisableFlag" :rules="rules.projectDesc">
  153. <el-input v-model="modalData.projectDesc" :disabled="modalPartDisableFlag" style="width: 170px"></el-input>
  154. </el-form-item>
  155. <el-form-item label="项目名称" prop="projectDesc" v-if="modalPartDisableFlag" :rules="rules.projectDesc">
  156. <el-input v-model="modalData.projectDesc" :disabled="modalPartDisableFlag" style="width: 294px"></el-input>
  157. </el-form-item>
  158. <el-form-item label="区域" prop="cProjectRegion" v-if="!modalPartDisableFlag" :rules="rules.cProjectRegion">
  159. <el-select v-model="modalData.cProjectRegion" placeholder="请选择" :disabled="modalPartDisableFlag" clearable style="width: 110px">
  160. <el-option
  161. v-for = "i in cProjectRegionList"
  162. :key = "i.cProjectRegion"
  163. :label = "i.cProjectRegion"
  164. :value = "i.cProjectRegion">
  165. </el-option>
  166. </el-select>
  167. </el-form-item>
  168. </el-form>
  169. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  170. <el-form-item prop="customerNo">
  171. <span slot="label" style="">
  172. <a herf="#" @click="getBaseList(509)">客户编码</a>
  173. <a herf="#" @click="newCustomer">新客户</a>
  174. </span>
  175. <el-input v-model="modalData.customerNo" @blur="customerNoBlur" style="width: 110px"></el-input>
  176. </el-form-item>
  177. <el-form-item label="客户名称" prop="customerDesc">
  178. <el-input v-model="modalData.customerDesc" disabled style="width: 418px"></el-input>
  179. </el-form-item>
  180. </el-form>
  181. <el-form :inline="true" v-if="this.modalData.flag !== '1' && this.modalData.flag !== '2'" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  182. <el-form-item label="项目料号" prop="testPartNo" :rules="rules.testPartNo" >
  183. <el-input v-model="modalData.testPartNo" style="width: 110px"></el-input>
  184. </el-form-item>
  185. <el-form-item label="料号描述" prop="partDesc" :rules="rules.partDesc" >
  186. <el-input v-model="modalData.partDesc" style="width: 418px"></el-input>
  187. </el-form-item>
  188. </el-form>
  189. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  190. <el-form-item label="优先级" prop="priority" :rules="rules.priority">
  191. <el-select v-model="modalData.priority" placeholder="请选择" clearable style="width: 110px">
  192. <el-option
  193. v-for = "i in priorityList"
  194. :key = "i.priority"
  195. :label = "i.priority"
  196. :value = "i.priority">
  197. </el-option>
  198. </el-select>
  199. </el-form-item>
  200. <el-form-item :label="'立项日期:'">
  201. <el-date-picker
  202. style="width: 110px"
  203. v-model="modalData.projectCreationDate"
  204. type="date"
  205. value-format="yyyy-MM-dd"
  206. placeholder="选择日期">
  207. </el-date-picker>
  208. </el-form-item>
  209. <el-form-item label="项目分类" prop="projectCategory" :rules="rules.projectCategory">
  210. <el-select v-model="modalData.projectCategory" placeholder="请选择" clearable style="width: 170px">
  211. <el-option
  212. v-for = "i in projectCategoryList"
  213. :key = "i.projectCategory"
  214. :label = "i.projectCategory"
  215. :value = "i.projectCategory">
  216. </el-option>
  217. </el-select>
  218. </el-form-item>
  219. <el-form-item :label="'预计完成日期:'" :rules="rules.needDate">
  220. <el-date-picker
  221. style="width: 110px"
  222. v-model="modalData.needDate"
  223. type="date"
  224. value-format="yyyy-MM-dd"
  225. placeholder="选择日期">
  226. </el-date-picker>
  227. </el-form-item>
  228. <!-- <el-form-item label="文档类型ID" prop="documentTypeId" :rules="rules.documentTypeIdType">-->
  229. <!-- <el-input v-model="modalData.documentTypeId" style="width: 230px"></el-input>-->
  230. <!-- </el-form-item>-->
  231. </el-form>
  232. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  233. <!-- <el-form-item prop="projectManager" :rules="rules.projectManager">-->
  234. <!-- <el-input v-model="modalData.projectManager" disabled style="width: 110px"></el-input>-->
  235. <!-- </el-form-item>-->
  236. <el-form-item label="PM/Sales" prop="projectManagerName" :rules="rules.projectManagerName">
  237. <span slot="label" style="" @click="projectManagerFlag = true "><a herf="#">PM/Sales</a></span>
  238. <el-input v-model="modalData.projectManagerName" disabled style="width: 110px"></el-input>
  239. </el-form-item>
  240. <el-form-item label="PjM" prop="projectOwner" :rules="rules.projectOwner">
  241. <span slot="label" style="" @click="projectOwnerFlag = true"><a herf="#">PjM</a></span>
  242. <el-input v-model="modalData.projectOwnerName" disabled style="width: 110px"></el-input>
  243. </el-form-item>
  244. <el-form-item label="Engineer" prop="engineerName" :rules="rules.engineerName">
  245. <span slot="label" style="" @click="engineer6Flag = true"><a herf="#">Engineer</a></span>
  246. <el-input v-model="modalData.engineerName" disabled style="width: 170px"></el-input>
  247. </el-form-item>
  248. <!-- <el-form-item prop="cQualityEngineer2" :rules="rules.cQualityEngineer2">-->
  249. <!-- <el-input v-model="modalData.cQualityEngineer2" disabled style="width: 110px"></el-input>-->
  250. <!-- </el-form-item>-->
  251. <el-form-item label="IPQC-Lam/Pri/Etch/Slit" prop="cQualityEngineer1Name" :rules="rules.cQualityEngineer1Name">
  252. <span slot="label" style="" @click="engineerFlag = true"><a herf="#">IPQC-Lam/Pri/Etch/Slit</a></span>
  253. <el-input v-model="modalData.cQualityEngineer1Name" disabled style="width: 110px"></el-input>
  254. </el-form-item>
  255. <el-form-item label="IPQC-Converting" prop="cQualityEngineer2Name" :rules="rules.cQualityEngineer2Name">
  256. <span slot="label" style="" @click="IPQCFlag = true"><a herf="#">IPQC-Converting</a></span>
  257. <el-input v-model="modalData.cQualityEngineer2Name" disabled style="width: 110px"></el-input>
  258. </el-form-item>
  259. <el-form-item label="FQC" prop="cQualityEngineer3Name" :rules="rules.cQualityEngineer3Name">
  260. <span slot="label" style="" @click="FQCFlag = true"><a herf="#">FQC</a></span>
  261. <el-input v-model="modalData.cQualityEngineer3Name" disabled style="width: 110px"></el-input>
  262. </el-form-item>
  263. <el-form-item label="MFG" prop="cManufactureEngineerName" :rules="rules.cManufactureEngineerName">
  264. <span slot="label" style="" @click="MFGlag = true"><a herf="#">MFG</a></span>
  265. <el-input v-model="modalData.cManufactureEngineerName" disabled style="width: 170px"></el-input>
  266. </el-form-item>
  267. <el-form-item label="文档工程师" prop="docEngineerName" :rules="rules.docEngineerName">
  268. <span slot="label" style="" @click="docEngineerFlag = true"><a herf="#">文档工程师</a></span>
  269. <el-input v-model="modalData.docEngineerName" disabled style="width: 110px"></el-input>
  270. </el-form-item>
  271. </el-form>
  272. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  273. <el-button type="primary" @click="saveData()">保存</el-button>
  274. <el-button @click="modalFlag = false">关闭</el-button>
  275. </el-footer>
  276. </el-dialog>
  277. <!--新客户客户名称输入弹框-->
  278. <el-dialog title="新客户" :close-on-click-modal="false" @close="closeNewCustomer" v-drag :visible.sync="newCustomerFlag" width="348px">
  279. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  280. <el-form-item label="客户名称" prop="customerDesc" :rules="rules.customerDesc">
  281. <el-input v-model="modalData.customerDesc" style="width: 313px"></el-input>
  282. </el-form-item>
  283. </el-form>
  284. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  285. <el-button type="primary" @click="saveNewCustomer()">保存</el-button>
  286. <el-button @click="newCustomerFlag = false">关闭</el-button>
  287. </el-footer>
  288. </el-dialog>
  289. <!--项目经理选择弹框-->
  290. <el-dialog title="PM/Sales" @close="closeProjectManagerInfoDialog" @open="openProjectManagerInfoDialog" :visible.sync="projectManagerFlag" width="559px" v-drag>
  291. <el-form inline="inline" label-position="top" :model="searchBusinessData" style="margin-left: 7px;margin-top: -5px;">
  292. <el-form-item label="用户账号">
  293. <el-input v-model="searchBusinessData.username" clearable style="width: 110px"></el-input>
  294. </el-form-item>
  295. <el-form-item label="用户名">
  296. <el-input v-model="searchBusinessData.userDisplay" clearable style="width: 110px"></el-input>
  297. </el-form-item>
  298. <el-form-item label="是否在用">
  299. <el-select filterable v-model="searchBusinessData.active" style="width: 140px">
  300. <el-option label="是" value="Y"></el-option>
  301. <el-option label="否" value="N"></el-option>
  302. </el-select>
  303. </el-form-item>
  304. <el-form-item label=" ">
  305. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList()">查询</el-button>
  306. </el-form-item>
  307. </el-form>
  308. <el-table
  309. :height="height + 110"
  310. :data="businessDataList"
  311. stripe
  312. highlight-current-row
  313. border
  314. @row-dblclick="projectManagerRowDblclick"
  315. style="width: 100%;">
  316. <el-table-column
  317. prop="username"
  318. header-align="center"
  319. align="center"
  320. label="用户账号">
  321. </el-table-column>
  322. <el-table-column
  323. prop="userDisplay"
  324. header-align="center"
  325. align="center"
  326. label="用户名">
  327. </el-table-column>
  328. <el-table-column
  329. prop="active"
  330. header-align="center"
  331. align="center"
  332. label="是否在用">
  333. </el-table-column>
  334. </el-table>
  335. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  336. <el-button @click="projectManagerFlag = false">关闭</el-button>
  337. </el-footer>
  338. </el-dialog>
  339. <!--PjM选择弹框-->
  340. <el-dialog title="PjM" @close="closeProjectOwnerInfoDialog" @open="openProjectOwnerInfoDialog" :visible.sync="projectOwnerFlag" width="559px" v-drag>
  341. <el-form inline="inline" label-position="top" :model="searchBusinessData1" style="margin-left: 7px;margin-top: -5px;">
  342. <el-form-item label="用户账号">
  343. <el-input v-model="searchBusinessData1.username" clearable style="width: 110px"></el-input>
  344. </el-form-item>
  345. <el-form-item label="用户名">
  346. <el-input v-model="searchBusinessData1.userDisplay" clearable style="width: 110px"></el-input>
  347. </el-form-item>
  348. <el-form-item label="是否在用">
  349. <el-select filterable v-model="searchBusinessData1.active" style="width: 140px">
  350. <el-option label="是" value="Y"></el-option>
  351. <el-option label="否" value="N"></el-option>
  352. </el-select>
  353. </el-form-item>
  354. <el-form-item label=" ">
  355. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList1()">查询</el-button>
  356. </el-form-item>
  357. </el-form>
  358. <el-table
  359. :height="height + 110"
  360. :data="businessDataList1"
  361. stripe
  362. highlight-current-row
  363. border
  364. @row-dblclick="projectOwnerRowDblclick"
  365. style="width: 100%;">
  366. <el-table-column
  367. prop="username"
  368. header-align="center"
  369. align="center"
  370. label="用户账号">
  371. </el-table-column>
  372. <el-table-column
  373. prop="userDisplay"
  374. header-align="center"
  375. align="center"
  376. label="用户名">
  377. </el-table-column>
  378. <el-table-column
  379. prop="active"
  380. header-align="center"
  381. align="center"
  382. label="是否在用">
  383. </el-table-column>
  384. </el-table>
  385. <el-footer style="height:40px;margin-top:
  386. 10px;text-align:center">
  387. <el-button @click="projectOwnerFlag = false">关闭</el-button>
  388. </el-footer>
  389. </el-dialog>
  390. <!--工程师选择弹框-->
  391. <el-dialog title="Engineer" @close="closeEngineer6InfoDialog" @open="openEngineer6InfoDialog" :visible.sync="engineer6Flag" width="559px" v-drag>
  392. <el-form inline="inline" label-position="top" :model="searchBusinessData6" style="margin-left: 7px;margin-top: -5px;">
  393. <el-form-item label="用户账号">
  394. <el-input v-model="searchBusinessData6.username" clearable style="width: 110px"></el-input>
  395. </el-form-item>
  396. <el-form-item label="用户名">
  397. <el-input v-model="searchBusinessData6.userDisplay" clearable style="width: 110px"></el-input>
  398. </el-form-item>
  399. <el-form-item label="是否在用">
  400. <el-select filterable v-model="searchBusinessData6.active" style="width: 140px">
  401. <el-option label="是" value="Y"></el-option>
  402. <el-option label="否" value="N"></el-option>
  403. </el-select>
  404. </el-form-item>
  405. <el-form-item label=" ">
  406. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList6()">查询</el-button>
  407. </el-form-item>
  408. </el-form>
  409. <el-table
  410. :height="height + 110"
  411. :data="businessDataList6"
  412. stripe
  413. highlight-current-row
  414. border
  415. @row-dblclick="engineer6RowDblclick"
  416. style="width: 100%;">
  417. <el-table-column
  418. prop="username"
  419. header-align="center"
  420. align="center"
  421. label="用户账号">
  422. </el-table-column>
  423. <el-table-column
  424. prop="userDisplay"
  425. header-align="center"
  426. align="center"
  427. label="用户名">
  428. </el-table-column>
  429. <el-table-column
  430. prop="active"
  431. header-align="center"
  432. align="center"
  433. label="是否在用">
  434. </el-table-column>
  435. </el-table>
  436. <el-footer style="height:40px;margin-top:
  437. 10px;text-align:center">
  438. <el-button @click="engineer6Flag = false">关闭</el-button>
  439. </el-footer>
  440. </el-dialog>
  441. <!--工程师选择弹框-->
  442. <el-dialog title="IPQC-Lam/Pri/Etch/Slit" @close="closeEngineerInfoDialog" @open="openEngineerInfoDialog" :visible.sync="engineerFlag" width="559px" v-drag>
  443. <el-form inline="inline" label-position="top" :model="searchBusinessData2" style="margin-left: 7px;margin-top: -5px;">
  444. <el-form-item label="用户账号">
  445. <el-input v-model="searchBusinessData2.username" clearable style="width: 110px"></el-input>
  446. </el-form-item>
  447. <el-form-item label="用户名">
  448. <el-input v-model="searchBusinessData2.userDisplay" clearable style="width: 110px"></el-input>
  449. </el-form-item>
  450. <el-form-item label="是否在用">
  451. <el-select filterable v-model="searchBusinessData2.active" style="width: 140px">
  452. <el-option label="是" value="Y"></el-option>
  453. <el-option label="否" value="N"></el-option>
  454. </el-select>
  455. </el-form-item>
  456. <el-form-item label=" ">
  457. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList2()">查询</el-button>
  458. </el-form-item>
  459. </el-form>
  460. <el-table
  461. :height="height + 110"
  462. :data="businessDataList2"
  463. stripe
  464. highlight-current-row
  465. border
  466. @row-dblclick="engineerRowDblclick"
  467. style="width: 100%;">
  468. <el-table-column
  469. prop="username"
  470. header-align="center"
  471. align="center"
  472. label="用户账号">
  473. </el-table-column>
  474. <el-table-column
  475. prop="userDisplay"
  476. header-align="center"
  477. align="center"
  478. label="用户名">
  479. </el-table-column>
  480. <el-table-column
  481. prop="active"
  482. header-align="center"
  483. align="center"
  484. label="是否在用">
  485. </el-table-column>
  486. </el-table>
  487. <el-footer style="height:40px;margin-top:
  488. 10px;text-align:center">
  489. <el-button @click="engineerFlag = false">关闭</el-button>
  490. </el-footer>
  491. </el-dialog>
  492. <!--IPQC选择弹框-->
  493. <el-dialog title="IPQC-Converting" @close="closeIPQCInfoDialog" @open="openIPQCInfoDialog" :visible.sync="IPQCFlag" width="559px" v-drag>
  494. <el-form inline="inline" label-position="top" :model="searchBusinessData3" style="margin-left: 7px;margin-top: -5px;">
  495. <el-form-item label="用户账号">
  496. <el-input v-model="searchBusinessData3.username" clearable style="width: 110px"></el-input>
  497. </el-form-item>
  498. <el-form-item label="用户名">
  499. <el-input v-model="searchBusinessData3.userDisplay" clearable style="width: 110px"></el-input>
  500. </el-form-item>
  501. <el-form-item label="是否在用">
  502. <el-select filterable v-model="searchBusinessData3.active" style="width: 140px">
  503. <el-option label="是" value="Y"></el-option>
  504. <el-option label="否" value="N"></el-option>
  505. </el-select>
  506. </el-form-item>
  507. <el-form-item label=" ">
  508. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList3()">查询</el-button>
  509. </el-form-item>
  510. </el-form>
  511. <el-table
  512. :height="height + 110"
  513. :data="businessDataList3"
  514. stripe
  515. highlight-current-row
  516. border
  517. @row-dblclick="IPQCRowDblclick"
  518. style="width: 100%;">
  519. <el-table-column
  520. prop="username"
  521. header-align="center"
  522. align="center"
  523. label="用户账号">
  524. </el-table-column>
  525. <el-table-column
  526. prop="userDisplay"
  527. header-align="center"
  528. align="center"
  529. label="用户名">
  530. </el-table-column>
  531. <el-table-column
  532. prop="active"
  533. header-align="center"
  534. align="center"
  535. label="是否在用">
  536. </el-table-column>
  537. </el-table>
  538. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  539. <el-button @click="IPQCFlag = false">关闭</el-button>
  540. </el-footer>
  541. </el-dialog>
  542. <!--FQC选择弹框-->
  543. <el-dialog title="FQC" @close="closeFQCInfoDialog" @open="openFQCInfoDialog" :visible.sync="FQCFlag" width="559px" v-drag>
  544. <el-form inline="inline" label-position="top" :model="searchBusinessData4" style="margin-left: 7px;margin-top: -5px;">
  545. <el-form-item label="用户账号">
  546. <el-input v-model="searchBusinessData4.username" clearable style="width: 110px"></el-input>
  547. </el-form-item>
  548. <el-form-item label="用户名">
  549. <el-input v-model="searchBusinessData4.userDisplay" clearable style="width: 110px"></el-input>
  550. </el-form-item>
  551. <el-form-item label="是否在用">
  552. <el-select filterable v-model="searchBusinessData4.active" style="width: 140px">
  553. <el-option label="是" value="Y"></el-option>
  554. <el-option label="否" value="N"></el-option>
  555. </el-select>
  556. </el-form-item>
  557. <el-form-item label=" ">
  558. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList4()">查询</el-button>
  559. </el-form-item>
  560. </el-form>
  561. <el-table
  562. :height="height + 110"
  563. :data="businessDataList4"
  564. stripe
  565. highlight-current-row
  566. border
  567. @row-dblclick="FQCRowDblclick"
  568. style="width: 100%;">
  569. <el-table-column
  570. prop="username"
  571. header-align="center"
  572. align="center"
  573. label="用户账号">
  574. </el-table-column>
  575. <el-table-column
  576. prop="userDisplay"
  577. header-align="center"
  578. align="center"
  579. label="用户名">
  580. </el-table-column>
  581. <el-table-column
  582. prop="active"
  583. header-align="center"
  584. align="center"
  585. label="是否在用">
  586. </el-table-column>
  587. </el-table>
  588. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  589. <el-button @click="FQCFlag = false">关闭</el-button>
  590. </el-footer>
  591. </el-dialog>
  592. <!--MFG选择弹框-->
  593. <el-dialog title="MFG" @close="closeMFGInfoDialog" @open="openMFGInfoDialog" :visible.sync="MFGlag" width="559px" v-drag>
  594. <el-form inline="inline" label-position="top" :model="searchBusinessData5" style="margin-left: 7px;margin-top: -5px;">
  595. <el-form-item label="用户账号">
  596. <el-input v-model="searchBusinessData5.username" clearable style="width: 110px"></el-input>
  597. </el-form-item>
  598. <el-form-item label="用户名">
  599. <el-input v-model="searchBusinessData5.userDisplay" clearable style="width: 110px"></el-input>
  600. </el-form-item>
  601. <el-form-item label="是否在用">
  602. <el-select filterable v-model="searchBusinessData5.active" style="width: 140px">
  603. <el-option label="是" value="Y"></el-option>
  604. <el-option label="否" value="N"></el-option>
  605. </el-select>
  606. </el-form-item>
  607. <el-form-item label=" ">
  608. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList5()">查询</el-button>
  609. </el-form-item>
  610. </el-form>
  611. <el-table
  612. :height="height + 110"
  613. :data="businessDataList5"
  614. stripe
  615. highlight-current-row
  616. border
  617. @row-dblclick="MFGRowDblclick"
  618. style="width: 100%;">
  619. <el-table-column
  620. prop="username"
  621. header-align="center"
  622. align="center"
  623. label="用户账号">
  624. </el-table-column>
  625. <el-table-column
  626. prop="userDisplay"
  627. header-align="center"
  628. align="center"
  629. label="用户名">
  630. </el-table-column>
  631. <el-table-column
  632. prop="active"
  633. header-align="center"
  634. align="center"
  635. label="是否在用">
  636. </el-table-column>
  637. </el-table>
  638. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  639. <el-button @click="MFGlag = false">关闭</el-button>
  640. </el-footer>
  641. </el-dialog>
  642. <!--文档工程师选择弹框-->
  643. <el-dialog title="文档工程师" @close="closeDocEngineerInfoDialog" @open="openDocEngineerInfoDialog" :visible.sync="docEngineerFlag" width="559px" v-drag>
  644. <el-form inline="inline" label-position="top" :model="searchBusinessData7" style="margin-left: 7px;margin-top: -5px;">
  645. <el-form-item label="用户账号">
  646. <el-input v-model="searchBusinessData7.username" clearable style="width: 110px"></el-input>
  647. </el-form-item>
  648. <el-form-item label="用户名">
  649. <el-input v-model="searchBusinessData7.userDisplay" clearable style="width: 110px"></el-input>
  650. </el-form-item>
  651. <el-form-item label="是否在用">
  652. <el-select filterable v-model="searchBusinessData7.active" style="width: 140px">
  653. <el-option label="是" value="Y"></el-option>
  654. <el-option label="否" value="N"></el-option>
  655. </el-select>
  656. </el-form-item>
  657. <el-form-item label=" ">
  658. <el-button type="primary" style="padding: 3px 12px" @click="searchBusinessInfoList7()">查询</el-button>
  659. </el-form-item>
  660. </el-form>
  661. <el-table
  662. :height="height + 110"
  663. :data="businessDataList7"
  664. stripe
  665. highlight-current-row
  666. border
  667. @row-dblclick="docEngineerRowDblclick"
  668. style="width: 100%;">
  669. <el-table-column
  670. prop="username"
  671. header-align="center"
  672. align="center"
  673. label="用户账号">
  674. </el-table-column>
  675. <el-table-column
  676. prop="userDisplay"
  677. header-align="center"
  678. align="center"
  679. label="用户名">
  680. </el-table-column>
  681. <el-table-column
  682. prop="active"
  683. header-align="center"
  684. align="center"
  685. label="是否在用">
  686. </el-table-column>
  687. </el-table>
  688. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  689. <el-button @click="docEngineerFlag = false">关闭</el-button>
  690. </el-footer>
  691. </el-dialog>
  692. <el-tabs style="height:100%; margin-top: 0px; width: 100%;" v-model="activeName" class="customer-tab" type="border-card" @tab-click="tabClick">
  693. <el-tab-pane label="项目物料" name="projectPart">
  694. <el-table
  695. :data="projectPartList"
  696. border
  697. style="width: 100%;margin-top: 5px;"
  698. :height="this.height + 128"
  699. ref="projectPartTable"
  700. :row-style="rowStyle"
  701. v-loading="dataListLoading">
  702. <el-table-column
  703. header-align="center"
  704. align="center"
  705. width="130"
  706. fixed="left"
  707. label="操作">
  708. <template slot-scope="scope">
  709. <a type="text" size="small" v-if="scope.row.testPartNo !== 'P000000'" @click="updatePartModal(scope.row)">编辑</a>
  710. <a type="text" size="small" @click="toMes(scope.row)">详情</a>
  711. <a type="text" size="small" @click="deletePartModal(scope.row)">删除</a>
  712. </template>
  713. </el-table-column>
  714. <el-table-column
  715. v-for="(item,index) in columnPartList" :key="index"
  716. :sortable="item.columnSortable"
  717. :prop="item.columnProp"
  718. :header-align="item.headerAlign"
  719. :show-overflow-tooltip="item.showOverflowTooltip"
  720. :align="item.align"
  721. :fixed="item.fixed==''?false:item.fixed"
  722. :min-width="item.columnWidth"
  723. :label="item.columnLabel">
  724. <template slot-scope="scope">
  725. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  726. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  727. style="width: 100px; height: 80px"/></span>
  728. </template>
  729. </el-table-column>
  730. </el-table>
  731. </el-tab-pane>
  732. </el-tabs>
  733. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  734. </div>
  735. </template>
  736. <script>
  737. import {getSiteAndBuByUserName} from "@/api/eam/eam.js"
  738. import {
  739. searchBusinessInfo,
  740. searchBusinessInfo1,
  741. searchBusinessInfo2,
  742. searchBusinessInfo3,
  743. searchBusinessInfo4,
  744. searchBusinessInfo5,
  745. searchBusinessInfo6
  746. } from "@/api/factory/site.js"
  747. import Chooselist from '@/views/modules/common/Chooselist_eam'
  748. import {removeUserFavorite, saveUserFavorite, userFavoriteList} from '@/api/userFavorite.js'
  749. import {getTableDefaultListLanguage, getTableUserListLanguage,} from "@/api/table.js";
  750. import {
  751. eamProjectInfoDelete,
  752. eamProjectInfoEdit,
  753. eamProjectInfoSave,
  754. eamProjectInfoSearch,
  755. } from "@/api/eam/eamProject.js";
  756. import {
  757. eamProjectPartInfoDelete,
  758. eamProjectPartInfoEdit,
  759. eamProjectPartInfoSave,
  760. eamProjectPartSearch, getCustomerNo, saveNewCustomer
  761. } from "../../../api/eam/eamProject";
  762. import row from "element-ui/packages/row";
  763. import 'moment/locale/zh-cn';
  764. import {EventBus} from "../../../main";
  765. import {queryCustomerList} from "../../../api/customer/customer";
  766. import {searchBusinessInfo7} from "../../../api/factory/site";
  767. /*打样记录組件*/
  768. export default {
  769. computed: {
  770. row() {
  771. return row
  772. }
  773. },
  774. components: {
  775. Chooselist,
  776. },
  777. watch: {
  778. searchData: {
  779. deep: true,
  780. handler: function (newV, oldV) {
  781. this.searchData.customerNo = this.searchData.customerNo.toUpperCase()
  782. }
  783. },
  784. },
  785. data () {
  786. return {
  787. // 是否收藏
  788. favorite: false,
  789. // 导出 start
  790. exportData: [],
  791. exportName: "customerNo" + this.dayjs().format('YYYYMMDDHHmmss'),
  792. exportHeader: ["customerNo"],
  793. exportFooter: [],
  794. exportList:[],
  795. // 导出 end
  796. tagNo:'',
  797. fileName:'',
  798. folder: 'projectConfirm',
  799. searchData: {
  800. site: this.$store.state.user.site,
  801. userName: this.$store.state.user.name,
  802. projectId: '',
  803. projectNo: '',
  804. projectDesc: '',
  805. partDesc: '',
  806. customerNo: '',
  807. customerDesc: '',
  808. buDesc: '',
  809. projectCategory: '',
  810. status: '',
  811. startDate:'',
  812. endDate:'',
  813. projectCreationDate: new Date(),
  814. projectCloseDate:'',
  815. needDate:'',
  816. // active: 'Y',
  817. page: 1,
  818. limit: 10,
  819. },
  820. height: 200,
  821. pageIndex: 1,
  822. pageSize: 20,
  823. totalPage: 0,
  824. businessDataList: [],
  825. businessDataList1: [],
  826. businessDataList2: [],
  827. businessDataList3: [],
  828. businessDataList4: [],
  829. businessDataList5: [],
  830. businessDataList6: [],
  831. businessDataList7: [],
  832. dataList: [],
  833. projectPartList: [],
  834. // ======== 选中的当前行数据 ========
  835. projectPart: {},
  836. fileList: [],
  837. dataListLoading: false,
  838. modalFlag:false,
  839. modalDisableFlag:false,
  840. modalPartDisableFlag:false,
  841. projectManagerFlag:false,
  842. projectOwnerFlag:false,
  843. engineerFlag:false,
  844. engineer6Flag:false,
  845. IPQCFlag:false,
  846. FQCFlag:false,
  847. MFGlag:false,
  848. docEngineerFlag:false,
  849. newCustomerFlag:false,
  850. modalData:{
  851. flag:'',
  852. bu: '',
  853. buNo: '',
  854. site: this.$store.state.user.site,
  855. projectId: '',
  856. projectNo: '',
  857. projectPartId: '',
  858. oriProjectId: '',
  859. projectDesc:'',
  860. projectCloseDate:'',
  861. proofingNo:'',
  862. needDate:'',
  863. customerNo:'',
  864. finalCustomerId:'',
  865. customerDesc:'',
  866. projectCategory:'',
  867. testPartNo:'',
  868. partDesc:'',
  869. priority:'',
  870. projectManager:'',
  871. projectManagerName:'',
  872. projectOwner:'',
  873. projectOwnerName:'',
  874. cProjectRegion:'',
  875. cProjectBuildDate:'',
  876. cQualityEngineer1:'',
  877. cQualityEngineer1Name:'',
  878. cQualityEngineer2:'',
  879. cQualityEngineer2Name:'',
  880. cQualityEngineer3:'',
  881. cQualityEngineer3Name:'',
  882. cManufactureEngineer:'',
  883. cManufactureEngineerName:'',
  884. docEngineer:'',
  885. docEngineerName:'',
  886. engineer:'',
  887. engineerName:'',
  888. //projectCreationDate为当前服务器的时间
  889. projectCreationDate: new Date(),
  890. finalPartNo:'',
  891. finalPartDesc:'',
  892. wantedConfirmDate: new Date(),
  893. // active:'',
  894. createBy: this.$store.state.user.name,
  895. updateBy: this.$store.state.user.name,
  896. },
  897. searchBusinessData:{
  898. site: this.$store.state.user.site,
  899. username: '',
  900. roleDesc: '',
  901. userDisplay: '',
  902. active: '',
  903. page: 1,
  904. limit: 10,
  905. },
  906. searchBusinessData1:{
  907. site: this.$store.state.user.site,
  908. username: '',
  909. roleDesc: '',
  910. userDisplay: '',
  911. active: '',
  912. page: 1,
  913. limit: 10,
  914. },
  915. searchBusinessData2:{
  916. site: this.$store.state.user.site,
  917. username: '',
  918. roleDesc: '',
  919. userDisplay: '',
  920. active: '',
  921. page: 1,
  922. limit: 10,
  923. },
  924. searchBusinessData3:{
  925. site: this.$store.state.user.site,
  926. username: '',
  927. roleDesc: '',
  928. userDisplay: '',
  929. active: '',
  930. page: 1,
  931. limit: 10,
  932. },
  933. searchBusinessData4:{
  934. site: this.$store.state.user.site,
  935. username: '',
  936. roleDesc: '',
  937. userDisplay: '',
  938. active: '',
  939. page: 1,
  940. limit: 10,
  941. },
  942. searchBusinessData5:{
  943. site: this.$store.state.user.site,
  944. username: '',
  945. roleDesc: '',
  946. userDisplay: '',
  947. active: '',
  948. page: 1,
  949. limit: 10,
  950. },
  951. searchBusinessData6:{
  952. site: this.$store.state.user.site,
  953. username: '',
  954. roleDesc: '',
  955. userDisplay: '',
  956. active: '',
  957. page: 1,
  958. limit: 10,
  959. },
  960. searchBusinessData7:{
  961. site: this.$store.state.user.site,
  962. username: '',
  963. roleDesc: '',
  964. userDisplay: '',
  965. active: '',
  966. page: 1,
  967. limit: 10,
  968. },
  969. activeName: 'projectPart',
  970. // 展示列集
  971. columnList: [
  972. {
  973. userId: this.$store.state.user.name,
  974. functionId: 101001013,
  975. serialNumber: '101001013Table1BuDesc',
  976. tableId: "101001013Table1",
  977. tableName: "BU文档清单表",
  978. columnProp: 'buDesc',
  979. headerAlign: "center",
  980. align: "center",
  981. columnLabel: 'BU',
  982. columnHidden: false,
  983. columnImage: false,
  984. columnSortable: false,
  985. sortLv: 0,
  986. status: true,
  987. fixed: '',
  988. columnWidth: 100,
  989. },
  990. {
  991. userId: this.$store.state.user.name,
  992. functionId: 101001014,
  993. serialNumber: '101001014Table1ProjectId',
  994. tableId: "101001014Table1",
  995. tableName: "项目信息表",
  996. columnProp: 'projectNo',
  997. headerAlign: "center",
  998. align: "center",
  999. columnLabel: '项目编码',
  1000. columnHidden: false,
  1001. columnImage: false,
  1002. columnSortable: false,
  1003. sortLv: 0,
  1004. status: true,
  1005. fixed: '',
  1006. columnWidth: 100,
  1007. },
  1008. {
  1009. userId: this.$store.state.user.name,
  1010. functionId: 101001014,
  1011. serialNumber: '101001014Table1ProjectDesc',
  1012. tableId: "101001014Table1",
  1013. tableName: "项目信息表",
  1014. columnProp: 'projectDesc',
  1015. headerAlign: "center",
  1016. align: "center",
  1017. columnLabel: '项目名称',
  1018. columnHidden: false,
  1019. columnImage: false,
  1020. columnSortable: false,
  1021. sortLv: 0,
  1022. status: true,
  1023. fixed: '',
  1024. columnWidth: 100,
  1025. },
  1026. {
  1027. userId: this.$store.state.user.name,
  1028. functionId: 101001014,
  1029. serialNumber: '101001014Table1customerNo',
  1030. tableId: "101001014Table1",
  1031. tableName: "项目信息表",
  1032. columnProp: "customerNo",
  1033. headerAlign: "center",
  1034. align: "left",
  1035. columnLabel: "客户编码",
  1036. columnHidden: false,
  1037. columnImage: false,
  1038. columnSortable: false,
  1039. sortLv: 0,
  1040. status: true,
  1041. fixed: '',
  1042. columnWidth: 100
  1043. },
  1044. {
  1045. userId: this.$store.state.user.name,
  1046. functionId: 101001014,
  1047. serialNumber: '101001014Table1customerDesc',
  1048. tableId: "101001014Table1",
  1049. tableName: "项目信息表",
  1050. columnProp: "customerDesc",
  1051. headerAlign: "center",
  1052. align: "left",
  1053. columnLabel: "客户名称",
  1054. columnHidden: false,
  1055. columnImage: false,
  1056. columnSortable: false,
  1057. sortLv: 0,
  1058. status: true,
  1059. fixed: '',
  1060. columnWidth: 150
  1061. },
  1062. {
  1063. userId: this.$store.state.user.name,
  1064. functionId: 101001014,
  1065. serialNumber: '101001014Table1ProjectCreationDate',
  1066. tableId: "101001014Table1",
  1067. tableName: "项目信息表",
  1068. columnProp: "projectCreationDate",
  1069. headerAlign: "center",
  1070. align: "center",
  1071. columnLabel: "立项日期",
  1072. columnHidden: false,
  1073. columnImage: false,
  1074. columnSortable: false,
  1075. sortLv: 0,
  1076. status: true,
  1077. fixed: '',
  1078. columnWidth: 120
  1079. },
  1080. {
  1081. userId: this.$store.state.user.name,
  1082. functionId: 101001014,
  1083. serialNumber: '101001014Table1ProjectCategory',
  1084. tableId: "101001014Table1",
  1085. tableName: "项目信息表",
  1086. columnProp: 'projectCategory',
  1087. headerAlign: "center",
  1088. align: "left",
  1089. columnLabel: '项目分类',
  1090. columnHidden: false,
  1091. columnImage: false,
  1092. columnSortable: false,
  1093. sortLv: 0,
  1094. status: true,
  1095. fixed: '',
  1096. columnWidth: 120,
  1097. },
  1098. {
  1099. userId: this.$store.state.user.name,
  1100. functionId: 101001014,
  1101. serialNumber: '101001014Table1Priority',
  1102. tableId: "101001014Table1",
  1103. tableName: "项目信息表",
  1104. columnProp: 'priority',
  1105. headerAlign: "center",
  1106. align: "left",
  1107. columnLabel: '优先级',
  1108. columnHidden: false,
  1109. columnImage: false,
  1110. columnSortable: false,
  1111. sortLv: 0,
  1112. status: true,
  1113. fixed: '',
  1114. columnWidth: 80,
  1115. },
  1116. //区域
  1117. {
  1118. userId: this.$store.state.user.name,
  1119. functionId: 101001014,
  1120. serialNumber: '101001014Table1CProjectRegion',
  1121. tableId: "101001014Table1",
  1122. tableName: "项目信息表",
  1123. columnProp: 'cProjectRegion',
  1124. headerAlign: "center",
  1125. align: "left",
  1126. columnLabel: '区域',
  1127. columnHidden: false,
  1128. columnImage: false,
  1129. columnSortable: false,
  1130. sortLv: 0,
  1131. status: true,
  1132. fixed: '',
  1133. columnWidth: 120,
  1134. },
  1135. {
  1136. userId: this.$store.state.user.name,
  1137. functionId: 101001014,
  1138. serialNumber: '101001014Table1ProjectManager',
  1139. tableId: "101001014Table1",
  1140. tableName: "项目信息表",
  1141. columnProp: 'projectManagerName',
  1142. headerAlign: "center",
  1143. align: "left",
  1144. columnLabel: 'PM/Sales',
  1145. columnHidden: false,
  1146. columnImage: false,
  1147. columnSortable: false,
  1148. sortLv: 0,
  1149. status: true,
  1150. fixed: '',
  1151. columnWidth: 120,
  1152. },
  1153. {
  1154. userId: this.$store.state.user.name,
  1155. functionId: 101001014,
  1156. serialNumber: '101001014Table1ProjectOwner',
  1157. tableId: "101001014Table1",
  1158. tableName: "项目信息表",
  1159. columnProp: 'projectOwnerName',
  1160. headerAlign: "center",
  1161. align: "left",
  1162. columnLabel: 'PjM',
  1163. columnHidden: false,
  1164. columnImage: false,
  1165. columnSortable: false,
  1166. sortLv: 0,
  1167. status: true,
  1168. fixed: '',
  1169. columnWidth: 120,
  1170. },
  1171. {
  1172. userId: this.$store.state.user.name,
  1173. functionId: 101001014,
  1174. serialNumber: '101001014Table1Engineer',
  1175. tableId: "101001014Table1",
  1176. tableName: "项目信息表",
  1177. columnProp: 'engineerName',
  1178. headerAlign: "center",
  1179. align: "left",
  1180. columnLabel: 'Engineer',
  1181. columnHidden: false,
  1182. columnImage: false,
  1183. columnSortable: false,
  1184. sortLv: 0,
  1185. status: true,
  1186. fixed: '',
  1187. columnWidth: 120,
  1188. },
  1189. {
  1190. userId: this.$store.state.user.name,
  1191. functionId: 101001014,
  1192. serialNumber: '101001014Table1CQualityEngineer1',
  1193. tableId: "101001014Table1",
  1194. tableName: "项目信息表",
  1195. columnProp: 'cQualityEngineer1Name',
  1196. headerAlign: "center",
  1197. align: "left",
  1198. columnLabel: 'IPQC-Lam/Pri/Etch/Slit',
  1199. columnHidden: false,
  1200. columnImage: false,
  1201. columnSortable: false,
  1202. sortLv: 0,
  1203. status: true,
  1204. fixed: '',
  1205. columnWidth: 120,
  1206. },
  1207. {
  1208. userId: this.$store.state.user.name,
  1209. functionId: 101001014,
  1210. serialNumber: '101001014Table1CQualityEngineer2',
  1211. tableId: "101001014Table1",
  1212. tableName: "项目信息表",
  1213. columnProp: 'cQualityEngineer2Name',
  1214. headerAlign: "center",
  1215. align: "left",
  1216. columnLabel: 'IPQC-Converting',
  1217. columnHidden: false,
  1218. columnImage: false,
  1219. columnSortable: false,
  1220. sortLv: 0,
  1221. status: true,
  1222. fixed: '',
  1223. columnWidth: 120,
  1224. },
  1225. {
  1226. userId: this.$store.state.user.name,
  1227. functionId: 101001014,
  1228. serialNumber: '101001014Table1CQualityEngineer3',
  1229. tableId: "101001014Table1",
  1230. tableName: "项目信息表",
  1231. columnProp: 'cQualityEngineer3Name',
  1232. headerAlign: "center",
  1233. align: "left",
  1234. columnLabel: 'FQC',
  1235. columnHidden: false,
  1236. columnImage: false,
  1237. columnSortable: false,
  1238. sortLv: 0,
  1239. status: true,
  1240. fixed: '',
  1241. columnWidth: 120,
  1242. },
  1243. {
  1244. userId: this.$store.state.user.name,
  1245. functionId: 101001014,
  1246. serialNumber: '101001014Table1CManufactureEngineer',
  1247. tableId: "101001014Table1",
  1248. tableName: "项目信息表",
  1249. columnProp: 'cManufactureEngineerName',
  1250. headerAlign: "center",
  1251. align: "left",
  1252. columnLabel: 'MFG',
  1253. columnHidden: false,
  1254. columnImage: false,
  1255. columnSortable: false,
  1256. sortLv: 0,
  1257. status: true,
  1258. fixed: '',
  1259. columnWidth: 120,
  1260. },
  1261. {
  1262. userId: this.$store.state.user.name,
  1263. functionId: 101001014,
  1264. serialNumber: '101001014Table1DocEngineer',
  1265. tableId: "101001014Table1",
  1266. tableName: "项目信息表",
  1267. columnProp: 'docEngineerName',
  1268. headerAlign: "center",
  1269. align: "left",
  1270. columnLabel: '文档工程师',
  1271. columnHidden: false,
  1272. columnImage: false,
  1273. columnSortable: false,
  1274. sortLv: 0,
  1275. status: true,
  1276. fixed: '',
  1277. columnWidth: 120,
  1278. },
  1279. {
  1280. userId: this.$store.state.user.name,
  1281. functionId: 101001014,
  1282. serialNumber: '101001014Table1Status',
  1283. tableId: "101001014Table1",
  1284. tableName: "项目信息表",
  1285. columnProp: 'status',
  1286. headerAlign: "center",
  1287. align: "left",
  1288. columnLabel: '项目状态' ,
  1289. columnHidden: false,
  1290. columnImage: false,
  1291. columnSortable: false,
  1292. sortLv: 0,
  1293. status: true,
  1294. fixed: '',
  1295. columnWidth: 100,
  1296. },
  1297. {
  1298. userId: this.$store.state.user.name,
  1299. functionId: 101001014,
  1300. serialNumber: '101001014Table1NeedDate',
  1301. tableId: "101001014Table1",
  1302. tableName: "项目信息表",
  1303. columnProp: 'needDate',
  1304. headerAlign: "center",
  1305. align: "center",
  1306. columnLabel: '预计完成日期',
  1307. columnHidden: false,
  1308. columnImage: false,
  1309. columnSortable: false,
  1310. sortLv: 0,
  1311. status: true,
  1312. fixed: '',
  1313. columnWidth: 120,
  1314. },
  1315. {
  1316. userId: this.$store.state.user.name,
  1317. functionId: 101001014,
  1318. serialNumber: '101001014Table1ProjectCloseDate',
  1319. tableId: "101001014Table1",
  1320. tableName: "项目信息表",
  1321. columnProp: 'projectCloseDate',
  1322. headerAlign: "center",
  1323. align: "left",
  1324. columnLabel: '结案日期',
  1325. columnHidden: false,
  1326. columnImage: false,
  1327. columnSortable: false,
  1328. sortLv: 0,
  1329. status: true,
  1330. fixed: '',
  1331. columnWidth: 120,
  1332. },
  1333. // {
  1334. // userId: this.$store.state.user.name,
  1335. // functionId: 101001014,
  1336. // serialNumber: '101001014Table1Active',
  1337. // tableId: "101001014Table1",
  1338. // tableName: "项目信息表",
  1339. // columnProp: 'active',
  1340. // headerAlign: "center",
  1341. // align: "center",
  1342. // columnLabel: '在用',
  1343. // columnHidden: false,
  1344. // columnImage: false,
  1345. // columnSortable: false,
  1346. // sortLv: 0,
  1347. // status: true,
  1348. // fixed: '',
  1349. // columnWidth: 120,
  1350. // },
  1351. {
  1352. userId: this.$store.state.user.name,
  1353. functionId: 101001014,
  1354. serialNumber: '101001014Table1CreateDate',
  1355. tableId: "101001014Table1",
  1356. tableName: "项目信息表",
  1357. columnProp: 'createDate',
  1358. headerAlign: "center",
  1359. align: "center",
  1360. columnLabel: '创建时间',
  1361. columnHidden: false,
  1362. columnImage: false,
  1363. columnSortable: false,
  1364. sortLv: 0,
  1365. status: true,
  1366. fixed: '',
  1367. columnWidth: 120,
  1368. },
  1369. {
  1370. userId: this.$store.state.user.name,
  1371. functionId: 101001014,
  1372. serialNumber: '101001014Table1CreateBy',
  1373. tableId: "101001014Table1",
  1374. tableName: "项目信息表",
  1375. columnProp: 'createBy',
  1376. headerAlign: "center",
  1377. align: "left",
  1378. columnLabel: '创建人',
  1379. columnHidden: false,
  1380. columnImage: false,
  1381. columnSortable: false,
  1382. sortLv: 0,
  1383. status: true,
  1384. fixed: '',
  1385. columnWidth: 120,
  1386. },
  1387. {
  1388. userId: this.$store.state.user.name,
  1389. functionId: 101001014,
  1390. serialNumber: '101001014Table1UpdateDate',
  1391. tableId: "101001014Table1",
  1392. tableName: "项目信息表",
  1393. columnProp: 'updateDate',
  1394. headerAlign: "center",
  1395. align: "center",
  1396. columnLabel: '更新时间',
  1397. columnHidden: false,
  1398. columnImage: false,
  1399. columnSortable: false,
  1400. sortLv: 0,
  1401. status: true,
  1402. fixed: '',
  1403. columnWidth: 120,
  1404. },
  1405. {
  1406. userId: this.$store.state.user.name,
  1407. functionId: 101001014,
  1408. serialNumber: '101001014Table1UpdateBy',
  1409. tableId: "101001014Table1",
  1410. tableName: "项目信息表",
  1411. columnProp: 'updateBy',
  1412. headerAlign: "center",
  1413. align: "left",
  1414. columnLabel: '更新人',
  1415. columnHidden: false,
  1416. columnImage: false,
  1417. columnSortable: false,
  1418. sortLv: 0,
  1419. status: true,
  1420. fixed: '',
  1421. columnWidth: 120,
  1422. },
  1423. ],
  1424. columnPartList: [
  1425. {
  1426. userId: this.$store.state.user.name,
  1427. functionId: 101001014,
  1428. serialNumber: '101001014Table1TestPartNo',
  1429. tableId: "101001014Table1",
  1430. tableName: "项目信息表",
  1431. columnProp: 'testPartNo',
  1432. headerAlign: "center",
  1433. align: "center",
  1434. columnLabel: '项目料号',
  1435. columnHidden: false,
  1436. columnImage: false,
  1437. columnSortable: false,
  1438. sortLv: 0,
  1439. status: true,
  1440. fixed: '',
  1441. columnWidth: 100,
  1442. },
  1443. {
  1444. userId: this.$store.state.user.name,
  1445. functionId: 101001014,
  1446. serialNumber: '101001014Table1PartDesc',
  1447. tableId: "101001014Table1",
  1448. tableName: "项目信息表",
  1449. columnProp: 'partDesc',
  1450. headerAlign: "center",
  1451. align: "center",
  1452. columnLabel: '料号描述',
  1453. columnHidden: false,
  1454. columnImage: false,
  1455. columnSortable: false,
  1456. sortLv: 0,
  1457. status: true,
  1458. fixed: '',
  1459. columnWidth: 100,
  1460. },
  1461. {
  1462. userId: this.$store.state.user.name,
  1463. functionId: 101001014,
  1464. serialNumber: '101001014Table1BuildDate',
  1465. tableId: "101001014Table1",
  1466. tableName: "项目信息表",
  1467. columnProp: "buildDate",
  1468. headerAlign: "center",
  1469. align: "center",
  1470. columnLabel: "立项日期",
  1471. columnHidden: false,
  1472. columnImage: false,
  1473. columnSortable: false,
  1474. sortLv: 0,
  1475. status: true,
  1476. fixed: '',
  1477. columnWidth: 120
  1478. },
  1479. {
  1480. userId: this.$store.state.user.name,
  1481. functionId: 101001014,
  1482. serialNumber: '101001014Table1ProjectCategory',
  1483. tableId: "101001014Table1",
  1484. tableName: "项目信息表",
  1485. columnProp: 'projectCategory',
  1486. headerAlign: "center",
  1487. align: "left",
  1488. columnLabel: '项目分类',
  1489. columnHidden: false,
  1490. columnImage: false,
  1491. columnSortable: false,
  1492. sortLv: 0,
  1493. status: true,
  1494. fixed: '',
  1495. columnWidth: 120,
  1496. },
  1497. {
  1498. userId: this.$store.state.user.name,
  1499. functionId: 101001014,
  1500. serialNumber: '101001014Table1Priority',
  1501. tableId: "101001014Table1",
  1502. tableName: "项目信息表",
  1503. columnProp: 'priority',
  1504. headerAlign: "center",
  1505. align: "left",
  1506. columnLabel: '优先级',
  1507. columnHidden: false,
  1508. columnImage: false,
  1509. columnSortable: false,
  1510. sortLv: 0,
  1511. status: true,
  1512. fixed: '',
  1513. columnWidth: 80,
  1514. },
  1515. {
  1516. userId: this.$store.state.user.name,
  1517. functionId: 101001014,
  1518. serialNumber: '101001014Table1ProjectManager',
  1519. tableId: "101001014Table1",
  1520. tableName: "项目信息表",
  1521. columnProp: 'projectManagerName',
  1522. headerAlign: "center",
  1523. align: "left",
  1524. columnLabel: 'PM/Sales',
  1525. columnHidden: false,
  1526. columnImage: false,
  1527. columnSortable: false,
  1528. sortLv: 0,
  1529. status: true,
  1530. fixed: '',
  1531. columnWidth: 120,
  1532. },
  1533. {
  1534. userId: this.$store.state.user.name,
  1535. functionId: 101001014,
  1536. serialNumber: '101001014Table1ProjectOwner',
  1537. tableId: "101001014Table1",
  1538. tableName: "项目信息表",
  1539. columnProp: 'projectOwnerName',
  1540. headerAlign: "center",
  1541. align: "left",
  1542. columnLabel: 'PjM',
  1543. columnHidden: false,
  1544. columnImage: false,
  1545. columnSortable: false,
  1546. sortLv: 0,
  1547. status: true,
  1548. fixed: '',
  1549. columnWidth: 120,
  1550. },
  1551. {
  1552. userId: this.$store.state.user.name,
  1553. functionId: 101001014,
  1554. serialNumber: '101001014Table1Engineer',
  1555. tableId: "101001014Table1",
  1556. tableName: "项目信息表",
  1557. columnProp: 'engineerName',
  1558. headerAlign: "center",
  1559. align: "left",
  1560. columnLabel: 'Engineer',
  1561. columnHidden: false,
  1562. columnImage: false,
  1563. columnSortable: false,
  1564. sortLv: 0,
  1565. status: true,
  1566. fixed: '',
  1567. columnWidth: 120,
  1568. },
  1569. {
  1570. userId: this.$store.state.user.name,
  1571. functionId: 101001014,
  1572. serialNumber: '101001014Table1CQualityEngineer1',
  1573. tableId: "101001014Table1",
  1574. tableName: "项目信息表",
  1575. columnProp: 'cQualityEngineer1Name',
  1576. headerAlign: "center",
  1577. align: "left",
  1578. columnLabel: 'IPQC-Lam/Pri/Etch/Slit',
  1579. columnHidden: false,
  1580. columnImage: false,
  1581. columnSortable: false,
  1582. sortLv: 0,
  1583. status: true,
  1584. fixed: '',
  1585. columnWidth: 120,
  1586. },
  1587. {
  1588. userId: this.$store.state.user.name,
  1589. functionId: 101001014,
  1590. serialNumber: '101001014Table1CQualityEngineer2',
  1591. tableId: "101001014Table1",
  1592. tableName: "项目信息表",
  1593. columnProp: 'cQualityEngineer2Name',
  1594. headerAlign: "center",
  1595. align: "left",
  1596. columnLabel: 'IPQC-Converting',
  1597. columnHidden: false,
  1598. columnImage: false,
  1599. columnSortable: false,
  1600. sortLv: 0,
  1601. status: true,
  1602. fixed: '',
  1603. columnWidth: 120,
  1604. },
  1605. {
  1606. userId: this.$store.state.user.name,
  1607. functionId: 101001014,
  1608. serialNumber: '101001014Table1CQualityEngineer3',
  1609. tableId: "101001014Table1",
  1610. tableName: "项目信息表",
  1611. columnProp: 'cQualityEngineer3Name',
  1612. headerAlign: "center",
  1613. align: "left",
  1614. columnLabel: 'FQC',
  1615. columnHidden: false,
  1616. columnImage: false,
  1617. columnSortable: false,
  1618. sortLv: 0,
  1619. status: true,
  1620. fixed: '',
  1621. columnWidth: 120,
  1622. },
  1623. {
  1624. userId: this.$store.state.user.name,
  1625. functionId: 101001014,
  1626. serialNumber: '101001014Table1CManufactureEngineer',
  1627. tableId: "101001014Table1",
  1628. tableName: "项目信息表",
  1629. columnProp: 'cManufactureEngineerName',
  1630. headerAlign: "center",
  1631. align: "left",
  1632. columnLabel: 'MFG',
  1633. columnHidden: false,
  1634. columnImage: false,
  1635. columnSortable: false,
  1636. sortLv: 0,
  1637. status: true,
  1638. fixed: '',
  1639. columnWidth: 120,
  1640. },
  1641. {
  1642. userId: this.$store.state.user.name,
  1643. functionId: 101001014,
  1644. serialNumber: '101001014Table1DocEngineer',
  1645. tableId: "101001014Table1",
  1646. tableName: "项目信息表",
  1647. columnProp: 'docEngineerName',
  1648. headerAlign: "center",
  1649. align: "left",
  1650. columnLabel: '文档工程师',
  1651. columnHidden: false,
  1652. columnImage: false,
  1653. columnSortable: false,
  1654. sortLv: 0,
  1655. status: true,
  1656. fixed: '',
  1657. columnWidth: 120,
  1658. },
  1659. {
  1660. userId: this.$store.state.user.name,
  1661. functionId: 101001014,
  1662. serialNumber: '101001014Table1Status',
  1663. tableId: "101001014Table1",
  1664. tableName: "项目信息表",
  1665. columnProp: 'status',
  1666. headerAlign: "center",
  1667. align: "left",
  1668. columnLabel: '项目状态' ,
  1669. columnHidden: false,
  1670. columnImage: false,
  1671. columnSortable: false,
  1672. sortLv: 0,
  1673. status: true,
  1674. fixed: '',
  1675. columnWidth: 100,
  1676. },
  1677. {
  1678. userId: this.$store.state.user.name,
  1679. functionId: 101001014,
  1680. serialNumber: '101001014Table1NeedDate',
  1681. tableId: "101001014Table1",
  1682. tableName: "项目信息表",
  1683. columnProp: 'needDate',
  1684. headerAlign: "center",
  1685. align: "center",
  1686. columnLabel: '预计完成日期',
  1687. columnHidden: false,
  1688. columnImage: false,
  1689. columnSortable: false,
  1690. sortLv: 0,
  1691. status: true,
  1692. fixed: '',
  1693. columnWidth: 120,
  1694. },
  1695. {
  1696. userId: this.$store.state.user.name,
  1697. functionId: 101001014,
  1698. serialNumber: '101001014Table1CloseDate',
  1699. tableId: "101001014Table1",
  1700. tableName: "项目信息表",
  1701. columnProp: 'closeDate',
  1702. headerAlign: "center",
  1703. align: "left",
  1704. columnLabel: '结案日期',
  1705. columnHidden: false,
  1706. columnImage: false,
  1707. columnSortable: false,
  1708. sortLv: 0,
  1709. status: true,
  1710. fixed: '',
  1711. columnWidth: 120,
  1712. },
  1713. {
  1714. userId: this.$store.state.user.name,
  1715. functionId: 101001014,
  1716. serialNumber: '101001014Table1FinalPartNo',
  1717. tableId: "101001014Table1",
  1718. tableName: "项目信息表",
  1719. columnProp: 'finalPartNo',
  1720. headerAlign: "center",
  1721. align: "left",
  1722. columnLabel: 'ERP正式料号',
  1723. columnHidden: false,
  1724. columnImage: false,
  1725. columnSortable: false,
  1726. sortLv: 0,
  1727. status: true,
  1728. fixed: '',
  1729. columnWidth: 120,
  1730. },
  1731. // {
  1732. // userId: this.$store.state.user.name,
  1733. // functionId: 101001014,
  1734. // serialNumber: '101001014Table1Active',
  1735. // tableId: "101001014Table1",
  1736. // tableName: "项目信息表",
  1737. // columnProp: 'active',
  1738. // headerAlign: "center",
  1739. // align: "center",
  1740. // columnLabel: '在用',
  1741. // columnHidden: false,
  1742. // columnImage: false,
  1743. // columnSortable: false,
  1744. // sortLv: 0,
  1745. // status: true,
  1746. // fixed: '',
  1747. // columnWidth: 120,
  1748. // },
  1749. {
  1750. userId: this.$store.state.user.name,
  1751. functionId: 101001014,
  1752. serialNumber: '101001014Table1CreateDate',
  1753. tableId: "101001014Table1",
  1754. tableName: "项目信息表",
  1755. columnProp: 'createDate',
  1756. headerAlign: "center",
  1757. align: "center",
  1758. columnLabel: '创建时间',
  1759. columnHidden: false,
  1760. columnImage: false,
  1761. columnSortable: false,
  1762. sortLv: 0,
  1763. status: true,
  1764. fixed: '',
  1765. columnWidth: 120,
  1766. },
  1767. {
  1768. userId: this.$store.state.user.name,
  1769. functionId: 101001014,
  1770. serialNumber: '101001014Table1CreateBy',
  1771. tableId: "101001014Table1",
  1772. tableName: "项目信息表",
  1773. columnProp: 'createBy',
  1774. headerAlign: "center",
  1775. align: "left",
  1776. columnLabel: '创建人',
  1777. columnHidden: false,
  1778. columnImage: false,
  1779. columnSortable: false,
  1780. sortLv: 0,
  1781. status: true,
  1782. fixed: '',
  1783. columnWidth: 120,
  1784. },
  1785. {
  1786. userId: this.$store.state.user.name,
  1787. functionId: 101001014,
  1788. serialNumber: '101001014Table1UpdateDate',
  1789. tableId: "101001014Table1",
  1790. tableName: "项目信息表",
  1791. columnProp: 'updateDate',
  1792. headerAlign: "center",
  1793. align: "center",
  1794. columnLabel: '更新时间',
  1795. columnHidden: false,
  1796. columnImage: false,
  1797. columnSortable: false,
  1798. sortLv: 0,
  1799. status: true,
  1800. fixed: '',
  1801. columnWidth: 120,
  1802. },
  1803. {
  1804. userId: this.$store.state.user.name,
  1805. functionId: 101001014,
  1806. serialNumber: '101001014Table1UpdateBy',
  1807. tableId: "101001014Table1",
  1808. tableName: "项目信息表",
  1809. columnProp: 'updateBy',
  1810. headerAlign: "center",
  1811. align: "left",
  1812. columnLabel: '更新人',
  1813. columnHidden: false,
  1814. columnImage: false,
  1815. columnSortable: false,
  1816. sortLv: 0,
  1817. status: true,
  1818. fixed: '',
  1819. columnWidth: 120,
  1820. },
  1821. ],
  1822. rules:{
  1823. projectNo:[
  1824. {
  1825. required: true,
  1826. message: ' ',
  1827. trigger: ['blur','change']
  1828. }
  1829. ],
  1830. projectDesc:[
  1831. {
  1832. required: true,
  1833. message: ' ',
  1834. trigger: ['blur','change']
  1835. }
  1836. ],
  1837. testPartNo:[
  1838. {
  1839. required: true,
  1840. message: ' ',
  1841. trigger: ['blur','change']
  1842. }
  1843. ],
  1844. partDesc:[
  1845. {
  1846. required: true,
  1847. message: ' ',
  1848. trigger: ['blur','change']
  1849. }
  1850. ],
  1851. projectManager:[
  1852. {
  1853. required: true,
  1854. message: ' ',
  1855. trigger: ['blur','change']
  1856. }
  1857. ],
  1858. engineer:[
  1859. {
  1860. required: true,
  1861. message: ' ',
  1862. trigger: ['blur','change']
  1863. }
  1864. ],
  1865. projectOwner:[
  1866. {
  1867. required: true,
  1868. message: ' ',
  1869. trigger: ['blur','change']
  1870. }
  1871. ],
  1872. cProjectRegion:[
  1873. {
  1874. required: true,
  1875. message: ' ',
  1876. trigger: ['blur','change']
  1877. }
  1878. ],
  1879. cQualityEngineer1:[
  1880. {
  1881. required: true,
  1882. message: ' ',
  1883. trigger: ['blur','change']
  1884. }
  1885. ],
  1886. cQualityEngineer2:[
  1887. {
  1888. required: true,
  1889. message: ' ',
  1890. trigger: ['blur','change']
  1891. }
  1892. ],
  1893. cQualityEngineer3:[
  1894. {
  1895. required: true,
  1896. message: ' ',
  1897. trigger: ['blur','change']
  1898. }
  1899. ],
  1900. cManufactureEngineer:[
  1901. {
  1902. required: true,
  1903. message: ' ',
  1904. trigger: ['blur','change']
  1905. }
  1906. ],
  1907. docEngineer:[
  1908. {
  1909. required: true,
  1910. message: ' ',
  1911. trigger: ['blur','change']
  1912. }
  1913. ],
  1914. docEngineerName:[
  1915. {
  1916. required: true,
  1917. message: ' ',
  1918. trigger: ['blur','change']
  1919. }
  1920. ],
  1921. projectManagerName:[
  1922. {
  1923. required: true,
  1924. message: ' ',
  1925. trigger: ['blur','change']
  1926. }
  1927. ],
  1928. engineerName:[
  1929. {
  1930. required: true,
  1931. message: ' ',
  1932. trigger: ['blur','change']
  1933. }
  1934. ],
  1935. cQualityEngineer1Name:[
  1936. {
  1937. required: true,
  1938. message: ' ',
  1939. trigger: ['blur','change']
  1940. }
  1941. ],
  1942. cQualityEngineer2Name:[
  1943. {
  1944. required: true,
  1945. message: ' ',
  1946. trigger: ['blur','change']
  1947. }
  1948. ],
  1949. cQualityEngineer3Name:[
  1950. {
  1951. required: true,
  1952. message: ' ',
  1953. trigger: ['blur','change']
  1954. }
  1955. ],
  1956. cManufactureEngineerName:[
  1957. {
  1958. required: true,
  1959. message: ' ',
  1960. trigger: ['blur','change']
  1961. }
  1962. ],
  1963. projectCategoryType:[
  1964. {
  1965. required: true,
  1966. message: ' ',
  1967. trigger: ['blur','change']
  1968. }
  1969. ],
  1970. documentTypeIdType:[
  1971. {
  1972. required: true,
  1973. message: ' ',
  1974. trigger: ['blur','change']
  1975. }
  1976. ],
  1977. documentTypeType:[
  1978. {
  1979. required: true,
  1980. message: ' ',
  1981. trigger: ['blur','change']
  1982. }
  1983. ],
  1984. responsibleDepartmentType:[
  1985. {
  1986. required: true,
  1987. message: ' ',
  1988. trigger: ['blur','change']
  1989. }
  1990. ],
  1991. estimatedCompletionDaysType:[
  1992. {
  1993. required: true,
  1994. message: ' ',
  1995. trigger: ['blur','change']
  1996. }
  1997. ],
  1998. activeType:[
  1999. {
  2000. required: true,
  2001. message: ' ',
  2002. trigger: ['blur','change']
  2003. }
  2004. ],
  2005. bu:[
  2006. {
  2007. required: true,
  2008. message: ' ',
  2009. trigger: ['blur','change']
  2010. }
  2011. ],
  2012. finalPartNo:[
  2013. {
  2014. required: true,
  2015. message: ' ',
  2016. trigger: ['blur','change']
  2017. }
  2018. ],
  2019. finalPartDesc:[
  2020. {
  2021. required: true,
  2022. message: ' ',
  2023. trigger: ['blur','change']
  2024. }
  2025. ],
  2026. needDate:[
  2027. {
  2028. required: true,
  2029. message: ' ',
  2030. trigger: ['blur','change']
  2031. }
  2032. ],
  2033. projectCreationDate:[
  2034. {
  2035. required: true,
  2036. message: ' ',
  2037. trigger: ['blur','change']
  2038. }
  2039. ],
  2040. wantedConfirmDate:[
  2041. {
  2042. required: true,
  2043. message: ' ',
  2044. trigger: ['blur','change']
  2045. }
  2046. ],
  2047. },
  2048. projectCategoryList: [
  2049. {
  2050. projectCategory: 'Low Risk',
  2051. },
  2052. {
  2053. projectCategory: 'High Risk',
  2054. },
  2055. {
  2056. projectCategory: 'Sustaining',
  2057. }
  2058. ],
  2059. cProjectRegionList: [
  2060. {
  2061. cProjectRegion: 'Global',
  2062. },
  2063. {
  2064. cProjectRegion: 'APAC',
  2065. },
  2066. {
  2067. cProjectRegion: 'CHINA',
  2068. },
  2069. {
  2070. cProjectRegion: 'EU',
  2071. },
  2072. {
  2073. cProjectRegion: 'US',
  2074. },
  2075. {
  2076. cProjectRegion: 'Mexico',
  2077. },
  2078. {
  2079. cProjectRegion: 'Other',
  2080. },
  2081. ],
  2082. priorityList: [
  2083. {
  2084. priority: 'Low',
  2085. },
  2086. {
  2087. priority: 'Middle',
  2088. },
  2089. {
  2090. priority: 'High',
  2091. },
  2092. ],
  2093. statusList: [
  2094. {
  2095. status: '草稿',
  2096. },
  2097. {
  2098. status: '进行中',
  2099. },
  2100. {
  2101. status: '已量产',
  2102. }
  2103. ],
  2104. userBuList: [],
  2105. menuId: this.$route.meta.menuId,
  2106. }
  2107. },
  2108. mounted () {
  2109. this.$nextTick(() => {
  2110. this.height = window.innerHeight - 558
  2111. })
  2112. EventBus.$on('updateProjectInfo', () => {
  2113. this.getDataList();
  2114. });
  2115. },
  2116. created () {
  2117. // 按钮控制
  2118. this.getButtonAuthData()
  2119. // 获取用户的 site 和 bu
  2120. this.getSiteAndBuByUserName()
  2121. // 校验用户是否收藏
  2122. this.favoriteIsOk()
  2123. // 动态列
  2124. this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
  2125. if (!this.authSearch) {
  2126. if (!this.agencyMatters){
  2127. // 获取数据列表
  2128. this.getDataList()
  2129. }
  2130. }
  2131. },
  2132. methods: {
  2133. // 获取用户的bu
  2134. getSiteAndBuByUserName () {
  2135. let tempData = {
  2136. username: this.$store.state.user.name,
  2137. }
  2138. getSiteAndBuByUserName(tempData).then(({data}) => {
  2139. if (data.code === 0) {
  2140. this.userBuList = data.rows
  2141. }
  2142. })
  2143. },
  2144. // 获取基础数据列表S
  2145. getBaseList (val,type) {
  2146. this.tagNo = val
  2147. this.$nextTick(() => {
  2148. let strVal = ''
  2149. if (val === 509 ) {
  2150. strVal = this.modalData.customerNo
  2151. this.$refs.baseList.init(val, strVal)
  2152. }
  2153. if (val === 301 ) {
  2154. strVal = this.modalData.projectManager
  2155. this.$refs.baseList.init(val, strVal)
  2156. }
  2157. })
  2158. },
  2159. /* 列表方法的回调 */
  2160. getBaseData (val) {
  2161. if (this.tagNo === 509) {
  2162. this.modalData.customerNo = val.customer_no
  2163. this.modalData.customerDesc = val.customer_desc
  2164. }
  2165. },
  2166. newCustomer () {
  2167. this.modalData.customerNo = ''
  2168. this.modalData.customerDesc = ''
  2169. this.newCustomerFlag = true
  2170. },
  2171. customerNoBlur(){
  2172. let params = {
  2173. customerNo: this.modalData.customerNo,
  2174. createBy: this.$store.state.user.name,
  2175. }
  2176. queryCustomerList(params).then(({data}) => {
  2177. if (data && data.code === 0) {
  2178. if (data.rows.length === 1){
  2179. this.modalData.customerDesc = data.rows[0].customerDesc
  2180. }else {
  2181. this.modalData.customerDesc = ''
  2182. }
  2183. }else {
  2184. this.$message.warning(data.message)
  2185. }
  2186. }).catch((error) => {
  2187. this.$message.error(error)
  2188. })
  2189. },
  2190. saveNewCustomer () {
  2191. this.generateNextCustomerNo().then((customerNo) => {
  2192. if (customerNo !== false) {
  2193. this.modalData.customerNo = customerNo
  2194. let tempData = {
  2195. site: this.$store.state.user.site,
  2196. customerNo: customerNo,
  2197. customerDesc: this.modalData.customerDesc,
  2198. createBy: this.$store.state.user.name,
  2199. }
  2200. saveNewCustomer(tempData).then(({data}) => {
  2201. if (data.code === 0) {
  2202. this.modalData.customerNo = ''
  2203. this.modalData.customerDesc = ''
  2204. this.$message.success(data.msg)
  2205. this.newCustomerFlag = false
  2206. }
  2207. })
  2208. }
  2209. else {
  2210. this.$alert('该客户已存在,请重新输入客户名称!', '提示', {
  2211. confirmButtonText: '确定',
  2212. type: 'warning'
  2213. })
  2214. }
  2215. })
  2216. },
  2217. generateNextCustomerNo() {
  2218. return new Promise((resolve, reject) => {
  2219. getCustomerNo(this.modalData).then(({ data }) => {
  2220. if (data.code === 0){
  2221. if (data.data === null || data.data === undefined || data.data === '' || data.data === '0') {
  2222. resolve('C0001');
  2223. } else {
  2224. const stringData = String(data.data.customerNo); // 显式转换为字符串
  2225. const lastCustomerNo = parseInt(stringData.substring(1));
  2226. const nextCustomerNo = lastCustomerNo + 1;
  2227. let customerNo;
  2228. if (nextCustomerNo < 10) {
  2229. customerNo = 'C000' + nextCustomerNo;
  2230. } else if (nextCustomerNo < 100) {
  2231. customerNo = 'C00' + nextCustomerNo;
  2232. } else if (nextCustomerNo < 1000) {
  2233. customerNo = 'C0' + nextCustomerNo;
  2234. } else {
  2235. customerNo = 'C' + nextCustomerNo;
  2236. }
  2237. resolve(customerNo);
  2238. }
  2239. }
  2240. else {
  2241. resolve(false);
  2242. }
  2243. }).catch(error => {
  2244. reject('Failed to fetch customerNo: ' + error);
  2245. });
  2246. });
  2247. },
  2248. closeNewCustomer () {
  2249. this.modalData.customerNo = ''
  2250. this.modalData.customerDesc = ''
  2251. this.newCustomerFlag = false
  2252. },
  2253. // 校验用户是否收藏
  2254. favoriteIsOk () {
  2255. let userFavorite = {
  2256. userId: this.$store.state.user.id,
  2257. languageCode: this.$i18n.locale
  2258. }
  2259. userFavoriteList(userFavorite).then(({data}) => {
  2260. for (let i = 0; i < data.list.length; i++) {
  2261. if (this.$route.meta.menuId === data.list[i].menuId) {
  2262. this.favorite = true
  2263. }
  2264. }
  2265. })
  2266. },
  2267. // 收藏 OR 取消收藏
  2268. favoriteFunction () {
  2269. let userFavorite = {
  2270. userId: this.$store.state.user.id,
  2271. functionId: this.$route.meta.menuId,
  2272. }
  2273. if (this.favorite) {
  2274. removeUserFavorite(userFavorite).then(({data}) => {
  2275. this.$message.success(data.msg)
  2276. this.favorite = false
  2277. })
  2278. } else {
  2279. // 收藏
  2280. saveUserFavorite(userFavorite).then(({data}) => {
  2281. this.$message.success(data.msg)
  2282. this.favorite = true
  2283. })
  2284. }
  2285. },
  2286. //导出excel
  2287. async createExportData () {
  2288. this.searchData.limit = -1
  2289. this.searchData.page = 1
  2290. await eamProjectInfoSearch(this.searchData).then(({data}) => {
  2291. this.exportList = data.page.list
  2292. })
  2293. return this.exportList
  2294. },
  2295. startDownload () {},
  2296. finishDownload () {},
  2297. fields () {
  2298. let json = "{"
  2299. this.columnList.forEach((item, index) => {
  2300. if (index == this.columnList.length - 1) {
  2301. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  2302. } else {
  2303. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  2304. }
  2305. })
  2306. json += "}"
  2307. let s = eval("(" + json + ")")
  2308. return s
  2309. },
  2310. agencyMatter(){
  2311. this.agencyMatters = false
  2312. this.getDataList()
  2313. },
  2314. // 获取数据列表
  2315. getDataList () {
  2316. this.searchData.limit = this.pageSize
  2317. this.searchData.page = this.pageIndex
  2318. eamProjectInfoSearch(this.searchData).then(({data}) => {
  2319. if (data.code === 0) {
  2320. this.dataList = data.page.list
  2321. this.pageIndex = data.page.currPage
  2322. this.pageSize = data.page.pageSize
  2323. this.totalPage = data.page.totalCount
  2324. // 遍历dataList
  2325. this.dataList.forEach((item) => {
  2326. item.projectManagerName = item.projectManager.split('-')[1]
  2327. item.projectOwnerName = item.projectOwner.split('-')[1]
  2328. item.engineerName = item.engineer.split('-')[1]
  2329. item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1]
  2330. item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1]
  2331. item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1]
  2332. item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1]
  2333. if (item.docEngineer != null && item.docEngineer !== ''){
  2334. item.docEngineerName = item.docEngineer.split('-')[1]
  2335. }
  2336. })
  2337. console.log(this.totalPage)
  2338. // 判断是否全部存在数据
  2339. if (this.totalPage > 0) {
  2340. // 设置选中行
  2341. this.$refs.mainTable.setCurrentRow(this.dataList[0])
  2342. // 加载当前的页签的table
  2343. this.refreshCurrentTabTable()
  2344. this.projectPartClickRow(this.projectPartList[0])
  2345. }
  2346. }
  2347. })
  2348. },
  2349. // ======== 列表操作方法 ========
  2350. /**
  2351. * 单机选中项目信息
  2352. * @param row
  2353. */
  2354. projectPartClickRow(row){
  2355. this.projectPartCurrentRow=JSON.parse(JSON.stringify(row));
  2356. },
  2357. /**
  2358. * 当前值发生变化的时候修改
  2359. * @param row
  2360. * @param oldRow
  2361. */
  2362. changeCurrentRow (row, oldRow) {
  2363. // 判断是否是获取焦点的事件
  2364. if (row) {
  2365. this.projectPartCurrentRow = JSON.parse(JSON.stringify(row))
  2366. //刷新当前页表
  2367. this.refreshCurrentTabTable()
  2368. }
  2369. },
  2370. // 每页数
  2371. sizeChangeHandle (val) {
  2372. this.pageSize = val
  2373. this.pageIndex = 1
  2374. this.getDataList()
  2375. },
  2376. // 当前页
  2377. currentChangeHandle (val) {
  2378. this.pageIndex = val
  2379. this.getDataList()
  2380. },
  2381. addModal () {
  2382. this.modalData = {
  2383. flag: '1',
  2384. bu: this.userBuList[0].buNo,
  2385. site: this.$store.state.user.site,
  2386. customerNo:'',
  2387. customerDesc:'',
  2388. projectCategory:'',
  2389. testPartNo:'',
  2390. partDesc:'',
  2391. projectNo: '',
  2392. projectDesc:'',
  2393. projectCloseDate:'',
  2394. needDate:'',
  2395. cProjectRegion: '',
  2396. projectManager:'',
  2397. projectOwner:'',
  2398. projectOwnerName:'',
  2399. projectManagerName:'',
  2400. engineer: '',
  2401. engineerName: '',
  2402. cQualityEngineer1:'',
  2403. cQualityEngineer1Name:'',
  2404. cQualityEngineer2:'',
  2405. cQualityEngineer2Name:'',
  2406. cQualityEngineer3:'',
  2407. cQualityEngineer3Name:'',
  2408. cManufactureEngineer: '',
  2409. cManufactureEngineerName: '',
  2410. docEngineer: '',
  2411. docEngineerName: '',
  2412. projectCreationDate:new Date(),
  2413. createDate: '',
  2414. // active: 'Y',
  2415. createBy: this.$store.state.user.name,
  2416. updateBy: this.$store.state.user.name,
  2417. }
  2418. this.modalDisableFlag = false
  2419. this.modalPartDisableFlag = false
  2420. this.modalFlag = true
  2421. },
  2422. updateModal (row) {
  2423. this.modalData = {
  2424. flag: '2',
  2425. site: row.site,
  2426. bu: row.site + '_' + row.buNo,
  2427. customerNo: row.customerNo,
  2428. customerDesc: row.customerDesc,
  2429. projectCategory: row.projectCategory,
  2430. testPartNo: row.testPartNo,
  2431. partDesc: row.partDesc,
  2432. projectId: row.projectId,
  2433. projectNo: row.projectNo,
  2434. projectDesc: row.projectDesc,
  2435. priority: row.priority,
  2436. projectCloseDate: row.projectCloseDate,
  2437. needDate: row.needDate,
  2438. cProjectRegion: row.cProjectRegion,
  2439. projectManager: row.projectManager,
  2440. projectManagerName: row.projectManager.split('-')[1], // 截取用户名
  2441. projectOwner: row.projectOwner,
  2442. projectOwnerName: row.projectOwner.split('-')[1], // 截取用户名
  2443. engineer: row.engineer,
  2444. engineerName: row.engineer.split('-')[1], // 截取用户名
  2445. cQualityEngineer1: row.cQualityEngineer1,
  2446. cQualityEngineer1Name: row.cQualityEngineer1.split('-')[1], // 截取用户名
  2447. cQualityEngineer2: row.cQualityEngineer2,
  2448. cQualityEngineer2Name: row.cQualityEngineer2.split('-')[1], // 截取用户名
  2449. cQualityEngineer3: row.cQualityEngineer3,
  2450. cQualityEngineer3Name: row.cQualityEngineer3.split('-')[1], // 截取用户名
  2451. cManufactureEngineer: row.cManufactureEngineer,
  2452. cManufactureEngineerName: row.cManufactureEngineer.split('-')[1], // 截取用户名
  2453. docEngineer: row.docEngineer,
  2454. projectCreationDate: row.projectCreationDate,
  2455. status: row.status,
  2456. // active: row.active,
  2457. createBy: this.$store.state.user.name,
  2458. updateBy: this.$store.state.user.name,
  2459. }
  2460. if (row.docEngineer != null && row.docEngineer !== ''){
  2461. this.modalData.docEngineerName= row.docEngineer.split('-')[1] // 截取用户名
  2462. }
  2463. this.modalDisableFlag = true
  2464. this.modalPartDisableFlag = false
  2465. this.modalFlag = true
  2466. },
  2467. // 删除
  2468. eamProjectInfoDelete (row) {
  2469. this.$confirm(`是否删除这个项目信息?`, '提示', {
  2470. confirmButtonText: '确定',
  2471. cancelButtonText: '取消',
  2472. type: 'warning'
  2473. }).then(() => {
  2474. eamProjectInfoDelete(row).then(({data}) => {
  2475. if (data && data.code === '0') {
  2476. this.getDataList()
  2477. EventBus.$emit('updateProjectPartInfo')
  2478. this.$message({
  2479. message: '操作成功',
  2480. type: 'success',
  2481. duration: 1500,
  2482. onClose: () => {}
  2483. })
  2484. } else {
  2485. this.$alert(data.msg, '错误', {
  2486. confirmButtonText: '确定'
  2487. })
  2488. }
  2489. })
  2490. }).catch(() => {
  2491. })
  2492. },
  2493. saveData () {
  2494. this.modalData.oriProjectId = this.modalData.projectNo
  2495. this.modalData.finalCustomerId = this.modalData.customerNo
  2496. if (this.modalData.projectNo === '' || this.modalData.projectNo == null) {
  2497. this.$message.warning('请输入项目编码!')
  2498. return
  2499. }
  2500. if (this.modalData.projectDesc === '' || this.modalData.projectDesc == null) {
  2501. this.$message.warning('请输入项目名称!')
  2502. return
  2503. }
  2504. if (this.modalData.customerNo === '' || this.modalData.customerNo == null) {
  2505. this.modalData.customerNo = 'C0000'
  2506. this.modalData.customerDesc = '无客户'
  2507. this.modalData.finalCustomerId = this.modalData.customerNo
  2508. }
  2509. if (this.modalData.customerDesc === '' || this.modalData.customerDesc == null) {
  2510. this.$alert('该客户不存在,请重新输入客户编码或点击新客户添加客户!', '提示', {
  2511. confirmButtonText: '确定',
  2512. type: 'warning'
  2513. })
  2514. return;
  2515. }
  2516. //请选择立项日期
  2517. if (this.searchData.projectCreationDate == null) {
  2518. this.$message.warning('请选择立项日期!')
  2519. return
  2520. }
  2521. if (this.modalData.needDate === '' || this.modalData.needDate == null) {
  2522. this.$message.warning('请选择预计完成日期!')
  2523. return
  2524. }
  2525. if (this.modalData.projectCategory === '' || this.modalData.projectCategory == null) {
  2526. this.$message.warning('请选择项目分类!')
  2527. return
  2528. }
  2529. if (this.modalData.bu === '' || this.modalData.bu == null) {
  2530. this.$message.warning('请选择BU!')
  2531. return
  2532. }
  2533. if (this.modalData.projectManager === '' || this.modalData.projectManager == null) {
  2534. this.$message.warning('请输入PM/Sales!')
  2535. return
  2536. }if (this.modalData.projectOwner === '' || this.modalData.projectOwner == null) {
  2537. this.$message.warning('请输入PjM!')
  2538. return
  2539. }
  2540. if (this.modalData.engineer === '' || this.modalData.engineer == null) {
  2541. this.$message.warning('请输入Engineer!')
  2542. return
  2543. }
  2544. if (this.modalData.cQualityEngineer1 === '' || this.modalData.cQualityEngineer1 == null) {
  2545. this.$message.warning('请输入IPQC-Lam/Pri/Etch/Slit!')
  2546. return
  2547. }
  2548. if (this.modalData.cQualityEngineer2 === '' || this.modalData.cQualityEngineer2 == null) {
  2549. this.$message.warning('请输入IPQC-Converting!')
  2550. return
  2551. }
  2552. if (this.modalData.cQualityEngineer3 === '' || this.modalData.cQualityEngineer3 == null) {
  2553. this.$message.warning('请输入FQC!')
  2554. return
  2555. }
  2556. if (this.modalData.cManufactureEngineer === '' || this.modalData.cManufactureEngineer == null) {
  2557. this.$message.warning('请输入MFG!')
  2558. return
  2559. }
  2560. if (this.modalData.docEngineer === '' || this.modalData.docEngineer == null) {
  2561. this.$message.warning('请输入文档工程师!')
  2562. return
  2563. }
  2564. // if (this.modalData.active === '' || this.modalData.active == null) {
  2565. // this.$message.warning('选择是否在用!')
  2566. // return
  2567. // }
  2568. if (this.modalData.flag === '1') {
  2569. if (new Date(this.modalData.needDate).getTime() < new Date().getTime()) {
  2570. this.$confirm('预计完成日期小于当前日期,确定继续保存?', '提示', {
  2571. confirmButtonText: '确定',
  2572. cancelButtonText: '取消',
  2573. type: 'warning'
  2574. }).then(() => {
  2575. this.modalData.status = '草稿'
  2576. let inData = {
  2577. projectId : null,
  2578. projectNo: this.modalData.projectNo,
  2579. projectDesc: this.modalData.projectDesc,
  2580. projectCategory: this.modalData.projectCategory,
  2581. projectCloseDate: this.modalData.projectCloseDate,
  2582. needDate: this.modalData.needDate,
  2583. cProjectRegion: this.modalData.cProjectRegion,
  2584. projectManager: this.modalData.projectManager,
  2585. projectOwner: this.modalData.projectOwner,
  2586. engineer: this.modalData.engineer,
  2587. cQualityEngineer1: this.modalData.cQualityEngineer1,
  2588. cQualityEngineer2: this.modalData.cQualityEngineer2,
  2589. cQualityEngineer3: this.modalData.cQualityEngineer3,
  2590. cManufactureEngineer: this.modalData.cManufactureEngineer,
  2591. docEngineer: this.modalData.docEngineer,
  2592. projectCreationDate: this.modalData.projectCreationDate,
  2593. createDate: this.modalData.createDate,
  2594. createBy: this.modalData.createBy,
  2595. updateBy: this.modalData.updateBy,
  2596. site: this.modalData.site,
  2597. bu: this.modalData.bu,
  2598. customerNo: this.modalData.customerNo,
  2599. customerDesc: this.modalData.customerDesc,
  2600. status: this.modalData.status,
  2601. active: this.modalData.active,
  2602. closeDate : this.modalData.projectCloseDate,
  2603. buildDate : this.modalData.projectCreationDate,
  2604. priority: this.modalData.priority,
  2605. testPartNo: 'P000000',
  2606. partDesc: '无物料',
  2607. }
  2608. eamProjectInfoSave(this.modalData).then(({data}) => {
  2609. if (data && data.code === '0') {
  2610. eamProjectInfoSearch(this.searchData).then(({data}) => {
  2611. if (data && data.code === 0) {
  2612. inData.projectId = data.page.list[0].projectId
  2613. eamProjectPartInfoSave(inData).then(({data}) => {
  2614. if (data && data.code === 0) {
  2615. this.getDataList()
  2616. this.modalFlag = false
  2617. EventBus.$emit('updateProjectPartInfo')
  2618. this.$message({
  2619. message: '操作成功',
  2620. type: 'success',
  2621. duration: 1500,
  2622. onClose: () => {
  2623. },
  2624. })
  2625. } else {
  2626. this.$alert(data.msg, '错误', {
  2627. confirmButtonText: '确定'
  2628. })
  2629. }
  2630. })
  2631. }
  2632. })
  2633. }
  2634. })
  2635. }).catch(() => {
  2636. // 如果点击取消提示已取消操作
  2637. this.$message({
  2638. type: 'info',
  2639. message: '已取消操作'
  2640. })
  2641. })
  2642. }
  2643. else {
  2644. this.modalData.status = '草稿'
  2645. let inData = {
  2646. projectId : null,
  2647. projectNo: this.modalData.projectNo,
  2648. projectDesc: this.modalData.projectDesc,
  2649. projectCategory: this.modalData.projectCategory,
  2650. projectCloseDate: this.modalData.projectCloseDate,
  2651. needDate: this.modalData.needDate,
  2652. cProjectRegion: this.modalData.cProjectRegion,
  2653. projectManager: this.modalData.projectManager,
  2654. projectOwner: this.modalData.projectOwner,
  2655. engineer: this.modalData.engineer,
  2656. cQualityEngineer1: this.modalData.cQualityEngineer1,
  2657. cQualityEngineer2: this.modalData.cQualityEngineer2,
  2658. cQualityEngineer3: this.modalData.cQualityEngineer3,
  2659. cManufactureEngineer: this.modalData.cManufactureEngineer,
  2660. docEngineer: this.modalData.docEngineer,
  2661. projectCreationDate: this.modalData.projectCreationDate,
  2662. createDate: this.modalData.createDate,
  2663. createBy: this.modalData.createBy,
  2664. updateBy: this.modalData.updateBy,
  2665. site: this.modalData.site,
  2666. bu: this.modalData.bu,
  2667. customerNo: this.modalData.customerNo,
  2668. customerDesc: this.modalData.customerDesc,
  2669. status: this.modalData.status,
  2670. active: this.modalData.active,
  2671. closeDate : this.modalData.projectCloseDate,
  2672. buildDate : this.modalData.projectCreationDate,
  2673. priority: this.modalData.priority,
  2674. testPartNo: 'P000000',
  2675. partDesc: '无物料',
  2676. }
  2677. eamProjectInfoSave(this.modalData).then(({data}) => {
  2678. if (data && data.code === '0') {
  2679. eamProjectInfoSearch(this.searchData).then(({data}) => {
  2680. if (data && data.code === 0) {
  2681. inData.projectId = data.page.list[0].projectId
  2682. eamProjectPartInfoSave(inData).then(({data}) => {
  2683. if (data && data.code === 0) {
  2684. this.getDataList()
  2685. this.modalFlag = false
  2686. EventBus.$emit('updateProjectPartInfo')
  2687. this.$message({
  2688. message: '操作成功',
  2689. type: 'success',
  2690. duration: 1500,
  2691. onClose: () => {
  2692. },
  2693. })
  2694. } else {
  2695. this.$alert(data.msg, '错误', {
  2696. confirmButtonText: '确定'
  2697. })
  2698. }
  2699. })
  2700. }
  2701. })
  2702. } else {
  2703. this.$alert(data.msg, '错误', {
  2704. confirmButtonText: '确定'
  2705. })
  2706. }
  2707. })
  2708. }
  2709. } else if (this.modalData.flag === '2'){
  2710. let inData = {
  2711. projectId : this.modalData.projectId,
  2712. projectNo: this.modalData.projectNo,
  2713. projectDesc: this.modalData.projectDesc,
  2714. projectCategory: this.modalData.projectCategory,
  2715. projectCloseDate: this.modalData.projectCloseDate,
  2716. needDate: this.modalData.needDate,
  2717. cProjectRegion: this.modalData.cProjectRegion,
  2718. projectManager: this.modalData.projectManager,
  2719. projectOwner: this.modalData.projectOwner,
  2720. engineer: this.modalData.engineer,
  2721. cQualityEngineer1: this.modalData.cQualityEngineer1,
  2722. cQualityEngineer2: this.modalData.cQualityEngineer2,
  2723. cQualityEngineer3: this.modalData.cQualityEngineer3,
  2724. cManufactureEngineer: this.modalData.cManufactureEngineer,
  2725. docEngineer: this.modalData.docEngineer,
  2726. projectCreationDate: this.modalData.projectCreationDate,
  2727. createDate: this.modalData.createDate,
  2728. createBy: this.modalData.createBy,
  2729. updateBy: this.modalData.updateBy,
  2730. site: this.modalData.site,
  2731. bu: this.modalData.bu,
  2732. customerNo: this.modalData.customerNo,
  2733. customerDesc: this.modalData.customerDesc,
  2734. status: this.modalData.status,
  2735. active: this.modalData.active,
  2736. closeDate : this.modalData.projectCloseDate,
  2737. buildDate : this.modalData.projectCreationDate,
  2738. priority: this.modalData.priority,
  2739. testPartNo: 'P000000',
  2740. partDesc: '无物料',
  2741. }
  2742. if (new Date(this.modalData.needDate).getTime() < new Date().getTime()) {
  2743. this.$confirm('预计完成日期小于当前日期,确定继续保存?', '提示', {
  2744. confirmButtonText: '确定',
  2745. cancelButtonText: '取消',
  2746. type: 'warning'
  2747. }).then(() => {
  2748. eamProjectInfoEdit(this.modalData).then(({data}) => {
  2749. if (data && data.code === '0') {
  2750. if (this.projectPartList.length !== 0 && this.projectPartList[0].testPartNo === 'P000000') {
  2751. inData.projectPartId = this.projectPartList[0].projectPartId
  2752. eamProjectPartInfoEdit(inData).then(({data}) => {
  2753. if (data && data.code !== 0) {
  2754. this.$alert(data.msg, '错误', {
  2755. confirmButtonText: '确定'
  2756. })
  2757. }
  2758. })
  2759. }
  2760. this.getDataList()
  2761. this.modalFlag=false
  2762. EventBus.$emit('updateProjectPartInfo')
  2763. this.$message({
  2764. message: '操作成功',
  2765. type: 'success',
  2766. duration: 1500,
  2767. onClose: () => {}
  2768. })
  2769. } else {
  2770. this.$alert(data.msg, '错误', {
  2771. confirmButtonText: '确定'
  2772. })
  2773. }
  2774. })
  2775. }
  2776. ).catch(() => {
  2777. // 如果点击取消提示已取消操作
  2778. this.$message({
  2779. type: 'info',
  2780. message: '已取消操作'
  2781. })
  2782. })
  2783. }
  2784. else {
  2785. eamProjectInfoEdit(this.modalData).then(({data}) => {
  2786. if (data && data.code === '0') {
  2787. if (this.projectPartList.length !== 0 && this.projectPartList[0].testPartNo === 'P000000') {
  2788. inData.projectPartId = this.projectPartList[0].projectPartId
  2789. eamProjectPartInfoEdit(inData).then(({data}) => {
  2790. if (data && data.code !== 0) {
  2791. this.$alert(data.msg, '错误', {
  2792. confirmButtonText: '确定'
  2793. })
  2794. }
  2795. })
  2796. }
  2797. this.getDataList()
  2798. this.modalFlag=false
  2799. EventBus.$emit('updateProjectPartInfo')
  2800. this.$message({
  2801. message: '操作成功',
  2802. type: 'success',
  2803. duration: 1500,
  2804. onClose: () => {}
  2805. })
  2806. } else {
  2807. this.$alert(data.msg, '错误', {
  2808. confirmButtonText: '确定'
  2809. })
  2810. }
  2811. })
  2812. }
  2813. } else if (this.modalData.flag === '3') {
  2814. if (this.modalData.testPartNo === '' || this.modalData.testPartNo == null) {
  2815. this.$message.warning('请输入项目料号!')
  2816. return
  2817. }
  2818. if (this.modalData.partDesc === '' || this.modalData.partDesc == null) {
  2819. this.$message.warning('请输入料号描述!')
  2820. return
  2821. }
  2822. this.modalData.closeDate = this.modalData.projectCloseDate
  2823. this.modalData.buildDate = this.modalData.projectCreationDate
  2824. eamProjectPartInfoSave(this.modalData).then(({data}) => {
  2825. if (data && data.code === 0) {
  2826. this.$message({
  2827. message: '操作成功',
  2828. type: 'success',
  2829. duration: 1500,
  2830. onClose: () => {}
  2831. })
  2832. this.getDataList()
  2833. this.modalFlag=false
  2834. EventBus.$emit('updateProjectPartInfo')
  2835. } else {
  2836. this.$alert(data.msg, '错误', {
  2837. confirmButtonText: '确定'
  2838. })
  2839. }
  2840. })
  2841. } else {
  2842. if (this.modalData.testPartNo === '' || this.modalData.testPartNo == null) {
  2843. this.$message.warning('请输入项目料号!')
  2844. return
  2845. }
  2846. if (this.modalData.partDesc === '' || this.modalData.partDesc == null) {
  2847. this.$message.warning('请输入料号描述!')
  2848. return
  2849. }
  2850. this.modalData.closeDate = this.modalData.projectCloseDate
  2851. this.modalData.buildDate = this.modalData.projectCreationDate
  2852. eamProjectPartInfoEdit(this.modalData).then(({data}) => {
  2853. if (data && data.code === 0) {
  2854. this.getDataList()
  2855. this.modalFlag=false
  2856. EventBus.$emit('updateProjectPartInfo')
  2857. this.$message({
  2858. message: '操作成功',
  2859. type: 'success',
  2860. duration: 1500,
  2861. onClose: () => {}
  2862. })
  2863. } else {
  2864. this.$alert(data.msg, '错误', {
  2865. confirmButtonText: '确定'
  2866. })
  2867. }
  2868. })
  2869. }
  2870. },
  2871. searchBusinessInfoList1 () {
  2872. searchBusinessInfo1(this.searchBusinessData1).then(({data}) => {
  2873. if (data && data.code === 0){
  2874. this.businessDataList1 = data.rows;
  2875. }
  2876. })
  2877. },
  2878. searchBusinessInfoList () {
  2879. searchBusinessInfo(this.searchBusinessData).then(({data}) => {
  2880. if (data && data.code === 0){
  2881. this.businessDataList = data.rows;
  2882. }
  2883. })
  2884. },
  2885. searchBusinessInfoList2 () {
  2886. searchBusinessInfo2(this.searchBusinessData2).then(({data}) => {
  2887. if (data && data.code === 0){
  2888. this.businessDataList2 = data.rows;
  2889. }
  2890. })
  2891. },
  2892. searchBusinessInfoList3 () {
  2893. searchBusinessInfo3(this.searchBusinessData3).then(({data}) => {
  2894. if (data && data.code === 0){
  2895. this.businessDataList3 = data.rows;
  2896. }
  2897. })
  2898. },
  2899. searchBusinessInfoList4 () {
  2900. searchBusinessInfo4(this.searchBusinessData4).then(({data}) => {
  2901. if (data && data.code === 0){
  2902. this.businessDataList4 = data.rows;
  2903. }
  2904. })
  2905. },
  2906. searchBusinessInfoList5 () {
  2907. searchBusinessInfo5(this.searchBusinessData5).then(({data}) => {
  2908. if (data && data.code === 0){
  2909. this.businessDataList5 = data.rows;
  2910. }
  2911. })
  2912. },
  2913. searchBusinessInfoList6 () {
  2914. searchBusinessInfo6(this.searchBusinessData6).then(({data}) => {
  2915. if (data && data.code === 0){
  2916. this.businessDataList6 = data.rows;
  2917. }
  2918. })
  2919. },
  2920. searchBusinessInfoList7 () {
  2921. searchBusinessInfo7(this.searchBusinessData7).then(({data}) => {
  2922. if (data && data.code === 0){
  2923. this.businessDataList7 = data.rows;
  2924. }
  2925. })
  2926. },
  2927. // 打开项目经理
  2928. openProjectManagerInfoDialog () {
  2929. //请求
  2930. this.searchBusinessInfoList();
  2931. },
  2932. // 打开项目负责人
  2933. openProjectOwnerInfoDialog () {
  2934. //请求
  2935. this.searchBusinessInfoList1();
  2936. },
  2937. // 打开工程师
  2938. openEngineerInfoDialog () {
  2939. //请求
  2940. this.searchBusinessInfoList2();
  2941. },
  2942. // 打开IPQC
  2943. openIPQCInfoDialog () {
  2944. //请求
  2945. this.searchBusinessInfoList3();
  2946. },
  2947. // 打开FQC
  2948. openFQCInfoDialog () {
  2949. //请求
  2950. this.searchBusinessInfoList4();
  2951. },
  2952. // 打开MFG
  2953. openMFGInfoDialog () {
  2954. //请求
  2955. this.searchBusinessInfoList5();
  2956. },
  2957. // 打开文档工程师
  2958. openDocEngineerInfoDialog () {
  2959. //请求
  2960. this.searchBusinessInfoList7();
  2961. },
  2962. openEngineer6InfoDialog () {
  2963. //请求
  2964. this.searchBusinessInfoList6();
  2965. },
  2966. // 关闭
  2967. closeProjectManagerInfoDialog () {
  2968. this.businessDataList = []
  2969. this.projectManagerFlag = false
  2970. },
  2971. closeProjectOwnerInfoDialog () {
  2972. this.businessDataList1 = []
  2973. this.projectOwnerFlag = false
  2974. },
  2975. //关闭
  2976. closeEngineerInfoDialog () {
  2977. this.businessDataList2 = []
  2978. this.engineerFlag = false
  2979. },
  2980. closeEngineer6InfoDialog () {
  2981. this.businessDataList6 = []
  2982. this.engineer6Flag = false
  2983. },
  2984. //关闭
  2985. closeIPQCInfoDialog () {
  2986. this.businessDataList3 = []
  2987. this.IPQCFlag = false
  2988. },
  2989. //关闭
  2990. closeFQCInfoDialog () {
  2991. this.businessDataList4 = []
  2992. this.FQCFlag = false
  2993. },
  2994. //关闭
  2995. closeMFGInfoDialog () {
  2996. this.businessDataList5 = []
  2997. this.MFGlag = false
  2998. },
  2999. //关闭
  3000. closeDocEngineerInfoDialog () {
  3001. this.businessDataList7 = []
  3002. this.docEngineerFlag = false
  3003. },
  3004. projectManagerRowDblclick(row) {
  3005. if (row && row.username && row.userDisplay) {
  3006. this.modalData.projectManager = row.username + '-' + row.userDisplay;
  3007. if (this.modalData.projectManager) {
  3008. this.modalData.projectManagerName = this.modalData.projectManager.split('-')[1];
  3009. }
  3010. }
  3011. this.projectManagerFlag = false;
  3012. },
  3013. projectOwnerRowDblclick (row) {
  3014. this.modalData.projectOwner = row.username + '-' + row.userDisplay
  3015. this.modalData.projectOwnerName = this.modalData.projectOwner.split('-')[1] // 截取用户名
  3016. this.projectOwnerFlag = false
  3017. },
  3018. engineerRowDblclick (row) {
  3019. this.modalData.cQualityEngineer1 = row.username + '-' + row.userDisplay
  3020. this.modalData.cQualityEngineer1Name = this.modalData.cQualityEngineer1.split('-')[1] // 截取用户名
  3021. this.engineerFlag = false
  3022. },
  3023. engineer6RowDblclick (row) {
  3024. this.modalData.engineer = row.username + '-' + row.userDisplay
  3025. this.modalData.engineerName = this.modalData.engineer.split('-')[1] // 截取用户名
  3026. this.engineer6Flag = false
  3027. },
  3028. IPQCRowDblclick (row) {
  3029. this.modalData.cQualityEngineer2 = row.username + '-' + row.userDisplay
  3030. this.modalData.cQualityEngineer2Name = this.modalData.cQualityEngineer2.split('-')[1] // 截取用户名
  3031. this.IPQCFlag = false
  3032. },
  3033. FQCRowDblclick (row) {
  3034. this.modalData.cQualityEngineer3 = row.username + '-' + row.userDisplay
  3035. this.modalData.cQualityEngineer3Name = this.modalData.cQualityEngineer3.split('-')[1] // 截取用户名
  3036. this.FQCFlag = false
  3037. },
  3038. MFGRowDblclick (row) {
  3039. this.modalData.cManufactureEngineer = row.username + '-' + row.userDisplay
  3040. this.modalData.cManufactureEngineerName = this.modalData.cManufactureEngineer.split('-')[1] // 截取用户名
  3041. this.MFGlag = false
  3042. },
  3043. docEngineerRowDblclick (row) {
  3044. this.modalData.docEngineer = row.username + '-' + row.userDisplay
  3045. this.modalData.docEngineerName = this.modalData.docEngineer.split('-')[1] // 截取用户名
  3046. this.docEngineerFlag = false
  3047. },
  3048. closeClear () {
  3049. this.modalData.bu = ''
  3050. this.modalData.projectNo = ''
  3051. this.modalData.projectDesc = ''
  3052. this.modalData.projectCloseDate = ''
  3053. this.modalData.needDate = ''
  3054. this.modalData.customerNo = ''
  3055. this.modalData.customerDesc = ''
  3056. this.modalData.projectCategory = ''
  3057. this.modalData.testPartNo = ''
  3058. this.modalData.partDesc = ''
  3059. this.modalData.projectManager = ''
  3060. this.modalData.projectManagerName = ''
  3061. this.modalData.engineer = ''
  3062. this.modalData.engineerName = ''
  3063. this.modalData.cQualityEngineer1 = ''
  3064. this.modalData.cQualityEngineer1Name = ''
  3065. this.modalData.cQualityEngineer2 = ''
  3066. this.modalData.cQualityEngineer2Name = ''
  3067. this.modalData.cQualityEngineer3 = ''
  3068. this.modalData.cQualityEngineer3Name = ''
  3069. this.modalData.cManufactureEngineer = ''
  3070. this.modalData.cManufactureEngineerName = ''
  3071. this.modalData.docEngineer = ''
  3072. this.modalData.docEngineerName = ''
  3073. this.modalData.projectCreationDate = new Date()
  3074. },
  3075. getProjectPartInfo () {
  3076. let queryProjectPart = {
  3077. projectId: this.projectPartCurrentRow.projectId,
  3078. projectNo: this.projectPartCurrentRow.projectNo,
  3079. site: this.projectPartCurrentRow.site,
  3080. buNo: this.projectPartCurrentRow.buNo,
  3081. userName: this.$store.state.user.name,
  3082. limit: 10,
  3083. page: 1
  3084. }
  3085. eamProjectPartSearch(queryProjectPart).then(({data}) => {
  3086. if (data && data.code === 0) {
  3087. this.projectPartList = data.page.list
  3088. // 遍历dataList
  3089. this.projectPartList.forEach((item) => {
  3090. item.projectManagerName = item.projectManager.split('-')[1]
  3091. item.projectOwnerName = item.projectOwner.split('-')[1]
  3092. item.engineerName = item.engineer.split('-')[1]
  3093. item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1]
  3094. item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1]
  3095. item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1]
  3096. item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1]
  3097. if (item.docEngineer != null && item.docEngineer !== ''){
  3098. item.docEngineerName = item.docEngineer.split('-')[1]
  3099. }
  3100. })
  3101. }
  3102. })
  3103. },
  3104. addProjectPartModal (row) {
  3105. this.modalData = {
  3106. flag: '3',
  3107. site: row.site,
  3108. bu: row.site + '_' + row.buNo,
  3109. projectPartId: '',
  3110. customerNo: row.customerNo,
  3111. customerDesc: row.customerDesc,
  3112. projectCategory: row.projectCategory,
  3113. testPartNo: '',
  3114. partDesc: '',
  3115. projectId: row.projectId,
  3116. projectNo: row.projectNo,
  3117. projectDesc: row.projectDesc,
  3118. priority: row.priority,
  3119. projectCloseDate: row.projectCloseDate,
  3120. needDate: row.needDate,
  3121. projectManager: row.projectManager,
  3122. projectManagerName: row.projectManager.split('-')[1], // 截取用户名
  3123. projectOwner: row.projectOwner,
  3124. projectOwnerName: row.projectOwner.split('-')[1], // 截取用户名
  3125. engineer: row.engineer,
  3126. engineerName: row.engineer.split('-')[1], // 截取用户名
  3127. cQualityEngineer1: row.cQualityEngineer1,
  3128. cQualityEngineer1Name: row.cQualityEngineer1.split('-')[1], // 截取用户名
  3129. cQualityEngineer2: row.cQualityEngineer2,
  3130. cQualityEngineer2Name: row.cQualityEngineer2.split('-')[1], // 截取用户名
  3131. cQualityEngineer3: row.cQualityEngineer3,
  3132. cQualityEngineer3Name: row.cQualityEngineer3.split('-')[1], // 截取用户名
  3133. cManufactureEngineer: row.cManufactureEngineer,
  3134. cManufactureEngineerName: row.cManufactureEngineer.split('-')[1], // 截取用户名
  3135. docEngineer: row.docEngineer,
  3136. projectCreationDate: row.projectCreationDate,
  3137. status: '草稿',
  3138. // active: row.active,
  3139. createBy: this.$store.state.user.name,
  3140. updateBy: this.$store.state.user.name,
  3141. }
  3142. if (row.docEngineer != null && row.docEngineer !== ''){
  3143. this.modalData.docEngineerName= row.docEngineer.split('-')[1] // 截取用户名
  3144. }
  3145. this.modalDisableFlag = true
  3146. this.modalPartDisableFlag = true
  3147. this.modalFlag = true
  3148. },
  3149. updatePartModal (row) {
  3150. this.modalData = {
  3151. flag: '4',
  3152. site: row.site,
  3153. bu: this.projectPartCurrentRow.site + '_' + this.projectPartCurrentRow.buNo,
  3154. customerNo: row.customerNo,
  3155. customerDesc: row.customerDesc,
  3156. projectCategory: row.projectCategory,
  3157. testPartNo: row.testPartNo,
  3158. partDesc: row.partDesc,
  3159. projectId: row.projectId,
  3160. projectNo: row.projectNo,
  3161. projectDesc: row.projectDesc,
  3162. projectPartId: row.projectPartId,
  3163. priority: row.priority,
  3164. projectCloseDate: row.closeDate,
  3165. needDate: row.needDate,
  3166. projectManager: row.projectManager,
  3167. projectManagerName: row.projectManager.split('-')[1], // 截取用户名
  3168. projectOwner: row.projectOwner,
  3169. projectOwnerName: row.projectOwner.split('-')[1], // 截取用户名
  3170. engineer: row.engineer,
  3171. engineerName: row.engineer.split('-')[1], // 截取用户名
  3172. cQualityEngineer1: row.cQualityEngineer1,
  3173. cQualityEngineer1Name: row.cQualityEngineer1.split('-')[1], // 截取用户名
  3174. cQualityEngineer2: row.cQualityEngineer2,
  3175. cQualityEngineer2Name: row.cQualityEngineer2.split('-')[1], // 截取用户名
  3176. cQualityEngineer3: row.cQualityEngineer3,
  3177. cQualityEngineer3Name: row.cQualityEngineer3.split('-')[1], // 截取用户名
  3178. cManufactureEngineer: row.cManufactureEngineer,
  3179. cManufactureEngineerName: row.cManufactureEngineer.split('-')[1], // 截取用户名
  3180. docEngineer: row.docEngineer,
  3181. projectCreationDate: row.buildDate,
  3182. status: row.status,
  3183. // active: row.active,
  3184. createBy: this.$store.state.user.name,
  3185. updateBy: this.$store.state.user.name,
  3186. }
  3187. if (row.docEngineer != null && row.docEngineer !== ''){
  3188. this.modalData.docEngineerName= row.docEngineer.split('-')[1] // 截取用户名
  3189. }
  3190. this.modalDisableFlag = true
  3191. this.modalPartDisableFlag = true
  3192. this.modalFlag = true
  3193. },
  3194. toMes (row) {
  3195. this.$router.push({ path: 'eam-eamProjectPartInfo', query: { testPartNo: row.testPartNo }})
  3196. },
  3197. deletePartModal (row) {
  3198. this.$confirm(`是否删除这个项目料号信息?`, '提示', {
  3199. confirmButtonText: '确定',
  3200. cancelButtonText: '取消',
  3201. type: 'warning'
  3202. }).then(() => {
  3203. eamProjectPartInfoDelete(row).then(({data}) => {
  3204. if (data && data.code === 0) {
  3205. this.getDataList()
  3206. EventBus.$emit('updateProjectPartInfo')
  3207. this.$message({
  3208. message: '操作成功',
  3209. type: 'success',
  3210. duration: 1500,
  3211. onClose: () => {}
  3212. })
  3213. } else {
  3214. this.$alert(data.msg, '错误', {
  3215. confirmButtonText: '确定'
  3216. })
  3217. }
  3218. })
  3219. }).catch(() => {
  3220. })
  3221. },
  3222. // 动态列开始 获取 用户保存的 格式列
  3223. async getTableUserColumn(tableId, columnId) {
  3224. let queryTableUser = {
  3225. userId: this.$store.state.user.name,
  3226. functionId: this.$route.meta.menuId,
  3227. tableId: tableId,
  3228. status: true,
  3229. languageCode: this.$i18n.locale
  3230. }
  3231. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  3232. if (data.rows.length > 0) {
  3233. //this.columnList1 = []
  3234. switch (columnId) {
  3235. case 1:
  3236. this.columnList = data.rows
  3237. break;
  3238. // case 2:
  3239. // this.detailColumnList = data.rows
  3240. // break;
  3241. // case 3:
  3242. // this.columnList2 = data.rows
  3243. // break;
  3244. // case 4:
  3245. // this.columnList3 = data.rows
  3246. // break;
  3247. }
  3248. } else {
  3249. this.getColumnList(tableId, columnId)
  3250. }
  3251. })
  3252. },
  3253. formatDate(row, column) {
  3254. // row 是当前行的数据对象
  3255. // column 是当前列的属性信息对象
  3256. const date = row[column.property];
  3257. if (date) {
  3258. const s = new Date(date).toLocaleDateString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' });
  3259. return s.replace(/\//g, '-')
  3260. } else {
  3261. return '';
  3262. }
  3263. },
  3264. // 获取 tableDefault 列
  3265. async getColumnList (tableId, columnId) {
  3266. let queryTable= {
  3267. functionId: this.$route.meta.menuId,
  3268. tableId: tableId,
  3269. languageCode: this.$i18n.locale
  3270. }
  3271. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  3272. if (!data.rows.length == 0) {
  3273. switch (columnId) {
  3274. case 1:
  3275. this.columnList = data.rows
  3276. break;
  3277. // case 2:
  3278. // this.detailColumnList = data.rows
  3279. // break;
  3280. // case 3:
  3281. // this.columnList2 = data.rows
  3282. // break;
  3283. // case 4:
  3284. // this.columnList3 = data.rows
  3285. // break;
  3286. }
  3287. } else {
  3288. // this.showDefault = true.
  3289. }
  3290. })
  3291. },
  3292. // 列表表格选择替换
  3293. tabClick (tab, event) {
  3294. // 刷新列表数据
  3295. this.refreshCurrentTabTable()
  3296. },
  3297. refreshCurrentTabTable () {
  3298. if (this.activeName == 'projectPart') {
  3299. this.getProjectPartInfo();
  3300. }
  3301. },
  3302. //获取按钮的权限数据
  3303. getButtonAuthData () {
  3304. let searchFlag = this.isAuth(this.menuId+":search")
  3305. let saveFlag = this.isAuth(this.menuId+":save")
  3306. let updateFlag = this.isAuth(this.menuId+":update")
  3307. let deleteFlag = this.isAuth(this.menuId+":delete")
  3308. //处理页面的权限数据
  3309. this.authSearch = !searchFlag
  3310. this.authSave = !saveFlag
  3311. this.authUpdate = !updateFlag
  3312. this.authDelete = !deleteFlag
  3313. },
  3314. rowStyle ({row}) {
  3315. if (this.projectPartCurrentRow.testPartNo === row.testPartNo) {
  3316. return { 'background-color': '#E8F7F6', cursor: 'pointer' };
  3317. }
  3318. },
  3319. }
  3320. }
  3321. </script>
  3322. <style scoped lang="scss">
  3323. .el-tabs__nav {
  3324. margin-left: 0 !important;
  3325. }
  3326. .red-text /deep/ .el-input__inner {
  3327. color: red;
  3328. }
  3329. /deep/ .left-section {
  3330. flex: 1; /* 左边部分占据剩余空间 */
  3331. margin-right: 10px; /* 右边与左边之间的间隔 */
  3332. margin-left: -10px; /* 左边与父元素之间的间隔 */
  3333. }
  3334. /deep/ .right-section {
  3335. width: 66%; /* 右边部分宽度占满剩余空间 */
  3336. margin-right: 5px;
  3337. }
  3338. /deep/ .custom-upload .el-upload-dragger {
  3339. width: 150px;
  3340. height: 150px;
  3341. text-align: center;
  3342. position: relative;
  3343. overflow: hidden;
  3344. /* 添加其他样式 */
  3345. }
  3346. /deep/ .table-container {
  3347. border: 1px solid #e0e0e0;
  3348. border-radius: 4px;
  3349. padding: 10px;
  3350. margin-bottom: 10px;
  3351. }
  3352. </style>