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.

513 lines
17 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  4. <el-button @click="getData()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'查询'}}</el-button>
  5. <el-button @click="addModal()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'新增'}}</el-button>
  6. </el-form>
  7. <el-table
  8. :height="height"
  9. :data="dataList"
  10. border
  11. v-loading="dataListLoading"
  12. style="width: 100%;">
  13. <el-table-column
  14. header-align="center"
  15. align="center"
  16. width="150"
  17. label="操作">
  18. <template slot-scope="scope">
  19. <a type="text" size="small" @click="editSite(scope.row)">修改</a>
  20. </template>
  21. </el-table-column>
  22. <el-table-column
  23. v-for="(item,index) in columnList" :key="index"
  24. :sortable="item.columnSortable"
  25. :prop="item.columnProp"
  26. :header-align="item.headerAlign"
  27. :show-overflow-tooltip="item.showOverflowTooltip"
  28. :align="item.align"
  29. :fixed="item.fixed"
  30. :width="item.columnWidth"
  31. :label="item.columnLabel">
  32. <template slot-scope="scope">
  33. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  34. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  35. style="width: 100px; height: 80px"/></span>
  36. </template>
  37. </el-table-column>
  38. </el-table>
  39. <el-dialog title="工厂维护" :close-on-click-modal="false" v-drag :visible.sync="siteFlag" width="500px" >
  40. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  41. <el-form-item :label="'工厂编号:'">
  42. <el-input v-model="siteData.siteID" :disabled="siteInputFlag" style="width: 130px"></el-input>
  43. </el-form-item>
  44. <el-form-item :label="'工厂名称(中文):'">
  45. <el-input v-model="siteData.siteName" style="width: 130px"></el-input>
  46. </el-form-item>
  47. <el-form-item :label="'工厂名称(英文):'">
  48. <el-input v-model="siteData.siteNameE" style="width: 130px"></el-input>
  49. </el-form-item>
  50. </el-form>
  51. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  52. <el-form-item :label="'会计单位:'">
  53. <el-select v-model="siteData.companyID" style="width: 130px"
  54. placeholder="请选择">
  55. <el-option
  56. v-for="(item,index) in selectList"
  57. :key="index"
  58. :label="item.companyName"
  59. :value="item.companyID">
  60. </el-option>
  61. </el-select>
  62. </el-form-item>
  63. <el-form-item :label="'参照客户编码:'">
  64. <el-input v-model="siteData.referenceCustomerID" style="width: 130px"></el-input>
  65. </el-form-item>
  66. <el-form-item :label="'邮政编码:'">
  67. <el-input v-model="siteData.postCode" style="width: 130px"></el-input>
  68. </el-form-item>
  69. </el-form>
  70. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  71. <el-form-item :label="'地址(中文):'">
  72. <el-input v-model="siteData.address" type="textarea" :autosize="{ minRows: 3, maxRows: 6}" style="width: 130px"></el-input>
  73. </el-form-item>
  74. <el-form-item :label="'地址(英文):'">
  75. <el-input v-model="siteData.addressE" type="textarea" :autosize="{ minRows: 3, maxRows: 6}" style="width: 130px"></el-input>
  76. </el-form-item>
  77. <el-form-item :label="'公司网站:'">
  78. <el-input v-model="siteData.website" type="textarea" :autosize="{ minRows: 3, maxRows: 6}" style="width: 130px"></el-input>
  79. </el-form-item>
  80. </el-form>
  81. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  82. <el-form-item :label="'联系人:'">
  83. <el-input v-model="siteData.contactName" style="width: 130px"></el-input>
  84. </el-form-item>
  85. <el-form-item :label="'电话:'">
  86. <el-input v-model="siteData.phoneNo" style="width: 130px"></el-input>
  87. </el-form-item>
  88. <el-form-item :label="'传真:'">
  89. <el-input v-model="siteData.faxNo" style="width: 130px"></el-input>
  90. </el-form-item>
  91. </el-form>
  92. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  93. <el-form-item :label="'email:'">
  94. <el-input v-model="siteData.email" style="width: 130px"></el-input>
  95. </el-form-item>
  96. <el-form-item :label="'在用:'">
  97. <el-select filterable v-model="siteData.active" style="width: 130px">
  98. <el-option label="是" value="Y"></el-option>
  99. <el-option label="否" value="N"></el-option>
  100. </el-select>
  101. </el-form-item>
  102. <el-form-item :label="'发货时间:'">
  103. <el-time-picker
  104. format="HH:mm"
  105. arrow-control
  106. style="width: 130px"
  107. v-model="siteData.shipTime"
  108. placeholder="请选择"
  109. value-format="HH:mm">
  110. </el-time-picker>
  111. </el-form-item>
  112. </el-form>
  113. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  114. <el-button type="primary" @click="siteSave()">保存</el-button>
  115. <el-button type="primary" @click="siteFlag = false">关闭</el-button>
  116. </el-footer>
  117. </el-dialog>
  118. </div>
  119. </template>
  120. <script>
  121. import {
  122. getSiteData,
  123. getCompanyData,
  124. siteSave
  125. } from "@/api/base/site.js"
  126. export default {
  127. name: "factoryInformation",
  128. data() {
  129. return {
  130. height: 200,
  131. siteFlag:false,
  132. siteInputFlag:true,
  133. selectList:[],
  134. siteData: {
  135. add:'',
  136. siteID:'',
  137. siteName:'',
  138. siteNameE:'',
  139. companyID:'',
  140. postCode:'',
  141. address:'',
  142. addressE:'',
  143. website:'',
  144. contactName:'',
  145. phoneNo:'',
  146. faxNo:'',
  147. email:'',
  148. active:'Y',
  149. shipTime:'',
  150. referenceCustomerID:'',
  151. },
  152. dataList:[],
  153. dataListLoading: false,
  154. buttons:{
  155. search:'查询',
  156. },
  157. columnList: [
  158. {
  159. userId: this.$store.state.user.name,
  160. functionId: 6001,
  161. serialNumber: '6001TableSiteID',
  162. tableId: "6001Table",
  163. tableName: "工厂信息表",
  164. columnProp: "siteID",
  165. headerAlign: "center",
  166. align: "left",
  167. columnLabel: "工厂编码",
  168. columnHidden: false,
  169. columnImage: false,
  170. columnSortable: false,
  171. sortLv: 0,
  172. status: true,
  173. fixed: false,
  174. columnWidth: 60
  175. },
  176. {
  177. userId: this.$store.state.user.name,
  178. functionId: 6001,
  179. serialNumber: '6001TableSiteName',
  180. tableId: "6001Table",
  181. tableName: "工厂信息表",
  182. columnProp: "siteName",
  183. headerAlign: "center",
  184. align: "left",
  185. columnLabel: "工厂名称",
  186. columnHidden: false,
  187. columnImage: false,
  188. columnSortable: false,
  189. sortLv: 0,
  190. status: true,
  191. fixed: false,
  192. columnWidth: 120
  193. },
  194. {
  195. userId: this.$store.state.user.name,
  196. functionId: 6001,
  197. serialNumber: '6001TableSiteNameE',
  198. tableId: "6001Table",
  199. tableName: "工厂信息表",
  200. columnProp: "siteNameE",
  201. headerAlign: "center",
  202. align: "left",
  203. columnLabel: "工厂名称(英文)",
  204. columnHidden: false,
  205. columnImage: false,
  206. columnSortable: false,
  207. sortLv: 0,
  208. status: true,
  209. fixed: false,
  210. columnWidth: 200
  211. },
  212. {
  213. userId: this.$store.state.user.name,
  214. functionId: 6001,
  215. serialNumber: '6001TableCompanyID',
  216. tableId: "6001Table",
  217. tableName: "工厂信息表",
  218. columnProp: "companyID",
  219. headerAlign: "center",
  220. align: "left",
  221. columnLabel: "会计单位",
  222. columnHidden: false,
  223. columnImage: false,
  224. columnSortable: false,
  225. sortLv: 0,
  226. status: true,
  227. fixed: false,
  228. columnWidth: 100
  229. },
  230. {
  231. userId: this.$store.state.user.name,
  232. functionId: 6001,
  233. serialNumber: '6001TableCompanyName',
  234. tableId: "6001Table",
  235. tableName: "工厂信息表",
  236. columnProp: "companyName",
  237. headerAlign: "center",
  238. align: "left",
  239. columnLabel: "会计单位名称",
  240. columnHidden: false,
  241. columnImage: false,
  242. columnSortable: false,
  243. sortLv: 0,
  244. status: true,
  245. fixed: false,
  246. columnWidth: 150
  247. },
  248. {
  249. userId: this.$store.state.user.name,
  250. functionId: 6001,
  251. serialNumber: '6001TableAddress',
  252. tableId: "6001Table",
  253. tableName: "工厂信息表",
  254. columnProp: "address",
  255. headerAlign: "center",
  256. align: "left",
  257. columnLabel: "地址",
  258. columnHidden: false,
  259. columnImage: false,
  260. columnSortable: false,
  261. sortLv: 0,
  262. status: true,
  263. fixed: false,
  264. columnWidth: 200
  265. },
  266. {
  267. userId: this.$store.state.user.name,
  268. functionId: 6001,
  269. serialNumber: '6001TableAddressE',
  270. tableId: "6001Table",
  271. tableName: "工厂信息表",
  272. columnProp: "addressE",
  273. headerAlign: "center",
  274. align: "left",
  275. columnLabel: "地址(英文)",
  276. columnHidden: false,
  277. columnImage: false,
  278. columnSortable: false,
  279. sortLv: 0,
  280. status: true,
  281. fixed: false,
  282. columnWidth: 200
  283. },
  284. {
  285. userId: this.$store.state.user.name,
  286. functionId: 6001,
  287. serialNumber: '6001TableWebsite',
  288. tableId: "6001Table",
  289. tableName: "工厂信息表",
  290. columnProp: "website",
  291. headerAlign: "center",
  292. align: "left",
  293. columnLabel: "公司网址",
  294. columnHidden: false,
  295. columnImage: false,
  296. columnSortable: false,
  297. sortLv: 0,
  298. status: true,
  299. fixed: false,
  300. columnWidth: 150
  301. },
  302. {
  303. userId: this.$store.state.user.name,
  304. functionId: 6001,
  305. serialNumber: '6001TableContactName',
  306. tableId: "6001Table",
  307. tableName: "工厂信息表",
  308. columnProp: "contactName",
  309. headerAlign: "center",
  310. align: "left",
  311. columnLabel: "联系人",
  312. columnHidden: false,
  313. columnImage: false,
  314. columnSortable: false,
  315. sortLv: 0,
  316. status: true,
  317. fixed: false,
  318. columnWidth: 100
  319. },
  320. {
  321. userId: this.$store.state.user.name,
  322. functionId: 6001,
  323. serialNumber: '6001TablePostCode',
  324. tableId: "6001Table",
  325. tableName: "工厂信息表",
  326. columnProp: "postCode",
  327. headerAlign: "center",
  328. align: "left",
  329. columnLabel: "邮政编码",
  330. columnHidden: false,
  331. columnImage: false,
  332. columnSortable: false,
  333. sortLv: 0,
  334. status: true,
  335. fixed: false,
  336. columnWidth: 100
  337. },
  338. {
  339. userId: this.$store.state.user.name,
  340. functionId: 6001,
  341. serialNumber: '6001TablePhoneNo',
  342. tableId: "6001Table",
  343. tableName: "工厂信息表",
  344. columnProp: "phoneNo",
  345. headerAlign: "center",
  346. align: "left",
  347. columnLabel: "电话",
  348. columnHidden: false,
  349. columnImage: false,
  350. columnSortable: false,
  351. sortLv: 0,
  352. status: true,
  353. fixed: false,
  354. columnWidth: 100
  355. },
  356. {
  357. userId: this.$store.state.user.name,
  358. functionId: 6001,
  359. serialNumber: '6001TableFaxNo',
  360. tableId: "6001Table",
  361. tableName: "工厂信息表",
  362. columnProp: "faxNo",
  363. headerAlign: "center",
  364. align: "left",
  365. columnLabel: "传真",
  366. columnHidden: false,
  367. columnImage: false,
  368. columnSortable: false,
  369. sortLv: 0,
  370. status: true,
  371. fixed: false,
  372. columnWidth: 100
  373. },
  374. {
  375. userId: this.$store.state.user.name,
  376. functionId: 6001,
  377. serialNumber: '6001TableEmail',
  378. tableId: "6001Table",
  379. tableName: "工厂信息表",
  380. columnProp: "email ",
  381. headerAlign: "center",
  382. align: "left",
  383. columnLabel: "Email",
  384. columnHidden: false,
  385. columnImage: false,
  386. columnSortable: false,
  387. sortLv: 0,
  388. status: true,
  389. fixed: false,
  390. columnWidth: 100
  391. },
  392. {
  393. userId: this.$store.state.user.name,
  394. functionId: 6001,
  395. serialNumber: '6001TableActive',
  396. tableId: "6001Table",
  397. tableName: "工厂信息表",
  398. columnProp: "active",
  399. headerAlign: "center",
  400. align: "left",
  401. columnLabel: "在用",
  402. columnHidden: false,
  403. columnImage: false,
  404. columnSortable: false,
  405. sortLv: 0,
  406. status: true,
  407. fixed: false,
  408. columnWidth: 50
  409. },
  410. {
  411. userId: this.$store.state.user.name,
  412. functionId: 6001,
  413. serialNumber: '6001TableShipTime',
  414. tableId: "6001Table",
  415. tableName: "工厂信息表",
  416. columnProp: "shipTime",
  417. headerAlign: "center",
  418. align: "left",
  419. columnLabel: "发货时间",
  420. columnHidden: false,
  421. columnImage: false,
  422. columnSortable: false,
  423. sortLv: 0,
  424. status: true,
  425. fixed: false,
  426. columnWidth: 120
  427. }
  428. ],
  429. }
  430. },
  431. mounted() {
  432. this.$nextTick(() => {
  433. this.height = window.innerHeight - 180;
  434. })
  435. },
  436. methods: {
  437. getData(){
  438. getSiteData().then(({data}) => {
  439. this.dataList = data.rows
  440. })
  441. },
  442. getSelectData(){
  443. getCompanyData().then(({data}) => {
  444. this.selectList = data.rows
  445. })
  446. },
  447. addModal(){
  448. this.siteData={};
  449. this.siteData.add=0;
  450. this.siteInputFlag=false;
  451. this.siteData.active='Y';
  452. this.siteFlag=true;
  453. },
  454. editSite(row){
  455. this.siteData=JSON.parse(JSON.stringify(row));
  456. this.siteData.add=1;
  457. this.siteInputFlag=true;
  458. this.siteFlag=true;
  459. },
  460. siteSave(){
  461. siteSave(this.siteData).then(({data}) => {
  462. if(this.siteData.companyID==''||this.siteData.companyID==null){
  463. this.$alert("请选择会计单位!",'错误',{
  464. confirmButtonText:'确定'
  465. })
  466. return false;
  467. }
  468. if(this.siteData.siteID==''||this.siteData.siteID==null){
  469. this.$alert("请输入工厂编码!",'错误',{
  470. confirmButtonText:'确定'
  471. })
  472. return false;
  473. }
  474. if(this.siteData.siteName==''||this.siteData.siteName==null){
  475. this.$alert("请输入工厂名称!",'错误',{
  476. confirmButtonText:'确定'
  477. })
  478. return false;
  479. }
  480. if (data && data.code == 200) {
  481. this.siteFlag = false
  482. this.getData();
  483. this.$message({
  484. message: '操作成功',
  485. type: 'success',
  486. duration: 1500,
  487. onClose: () => {
  488. }
  489. })
  490. } else {
  491. this.$alert(data.msg, '错误', {
  492. confirmButtonText: '确定'
  493. })
  494. }
  495. })
  496. }
  497. },
  498. created() {
  499. this.getData();
  500. this.getSelectData();
  501. }
  502. }
  503. </script>
  504. <style >
  505. .el-textarea__inner {
  506. padding: 5px 5px;
  507. }
  508. </style>