Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

326 rader
9.7 KiB

  1. <template>
  2. <div class="box-center">
  3. <!-- 头 -->
  4. <div class="app-top">
  5. <div class="app-titel" style="margin-top: 5px">
  6. <div class="label">批次号:</div>
  7. <div>
  8. <el-input v-model="batchId" maxlength="20" clearable></el-input>
  9. </div>
  10. <div style="margin-left: 20px">
  11. <el-button style="background: #2671e2; color: #ffffff" @click="Screening()">筛选</el-button
  12. >
  13. </div>
  14. <div style="margin-left: 20px">
  15. <el-button @click="Screeningofempty()">清空筛选条件</el-button>
  16. </div>
  17. <div style="margin-left: 20px">
  18. <el-button v-if="equ_batch_add" @click="editorinfo()" style="background: #2671e2; color: #ffffff"
  19. >添加批次</el-button
  20. >
  21. </div>
  22. </div>
  23. </div>
  24. <!-- 表格 -->
  25. <div class="cen-tab">
  26. <el-table
  27. :data="tableData"
  28. stripe
  29. style="width: 100%">
  30. <el-table-column
  31. prop="batchId"
  32. label="批次号"
  33. align="center"
  34. >
  35. </el-table-column>
  36. <el-table-column
  37. prop="name"
  38. label="设备号"
  39. align="center"
  40. >
  41. <template slot-scope="scope">
  42. <p>{{scope.row.deviceNoStart}}:{{scope.row.deviceNoEnd}}</p>
  43. </template>
  44. </el-table-column>
  45. <el-table-column
  46. prop="realityEquipmentCount"
  47. label="应收设备数量"
  48. align="center">
  49. </el-table-column>
  50. <el-table-column
  51. prop="receivableEquipmentCount"
  52. label="实收设备数量"
  53. align="center"
  54. >
  55. </el-table-column>
  56. <el-table-column
  57. prop="acceptanceNum"
  58. label="已验收设备数量"
  59. align="center"
  60. >
  61. </el-table-column>
  62. <el-table-column
  63. prop="createTime"
  64. label="创建时间"
  65. align="center">
  66. </el-table-column>
  67. <el-table-column
  68. prop="remark"
  69. label="备注"
  70. align="center"
  71. >
  72. </el-table-column>
  73. <el-table-column label="操作" align="center">
  74. <template slot-scope="scope">
  75. <div v-if="equ_batch_edit" style="color: #2671E2;" @click="clickbianji(scope.row)">修改</div>
  76. </template>
  77. </el-table-column>
  78. </el-table>
  79. <div style="display: flex;justify-content:flex-end;margin-top: 10px;">
  80. <el-pagination
  81. @size-change="handleSizeChange"
  82. @current-change="handleCurrentChange"
  83. :current-page="pageNum"
  84. :page-sizes="[10, 30, 50]"
  85. :page-size="pageSize"
  86. layout="total, sizes, prev, pager, next, jumper"
  87. :total="total">
  88. </el-pagination>
  89. </div>
  90. </div>
  91. <el-dialog :title='isshow' :visible.sync="dialogVisible" @closed='clear'>
  92. <el-form :model="addagentobj" label-position="labelPosition" :rules="rules" ref="addagentobj" label-width="140px" style="width:60%; margin: 0 auto;">
  93. <el-form-item label="批次号" prop="batchId">
  94. <el-input v-model="addagentobj.batchId" maxlength="20" clearable></el-input>
  95. </el-form-item>
  96. <el-form-item label="应收设备数量" prop="realityEquipmentCount">
  97. <el-input v-model="addagentobj.realityEquipmentCount" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)));" maxlength="5" clearable></el-input>
  98. </el-form-item>
  99. <el-form-item label="实收设备数量" prop="receivableEquipmentCount">
  100. <el-input v-model="addagentobj.receivableEquipmentCount" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)));" maxlength="5" clearable></el-input>
  101. </el-form-item>
  102. <el-form-item label="设备号开头" prop="deviceNoStart">
  103. <el-input v-model="addagentobj.deviceNoStart" clearable maxlength="10"></el-input>
  104. </el-form-item>
  105. <el-form-item label="设备号结尾" prop="deviceNoEnd">
  106. <el-input v-model="addagentobj.deviceNoEnd" clearable maxlength="10"></el-input>
  107. </el-form-item>
  108. <el-form-item label="备注:">
  109. <el-input type="textarea" v-model="addagentobj.remark" maxlength="50" show-word-limit></el-input>
  110. </el-form-item>
  111. </el-form>
  112. <div slot="footer" class="dialog-footer">
  113. <el-button @click="dialogVisible = false">取 消</el-button>
  114. <el-button type="primary" @click="editor()">保存</el-button>
  115. </div>
  116. </el-dialog>
  117. </div>
  118. </template>
  119. <script>
  120. import { mapGetters } from "vuex";
  121. export default {
  122. data() {
  123. return {
  124. dialogVisible:false,
  125. batchId:'',
  126. tableData: [],
  127. currentPage4:1,
  128. addagentobj:{
  129. id:'',
  130. batchId:'',// 批次号
  131. realityEquipmentCount:'',// 应收数
  132. receivableEquipmentCount:'',// 实收数
  133. deviceNoStart:'',// 开头
  134. deviceNoEnd:'',// 结尾
  135. remark:''//备注
  136. },
  137. rules:{
  138. batchId: [
  139. { required: true, message: '请输入批次号', trigger: 'blur' },
  140. ],
  141. realityEquipmentCount: [
  142. { required: true, message: '请输入应收设备数量', trigger: 'blur' },
  143. ],
  144. receivableEquipmentCount: [
  145. { required: true, message: '请输入实收设备数量', trigger: 'blur' },
  146. ],
  147. deviceNoStart: [
  148. { required: true, message: '请输入设备号开头', trigger: 'blur' },
  149. ],
  150. deviceNoEnd: [
  151. { required: true, message: '请输入设备号结尾', trigger: 'blur' },
  152. ],
  153. },
  154. total:0,//总条数
  155. pageNum:1,
  156. pageSize:8,
  157. isshow:'绑定'
  158. };
  159. },
  160. computed: {
  161. ...mapGetters(["permissions"]),
  162. },
  163. created() {
  164. this.equ_batch_add = this.permissions["equ_batch_add"];
  165. this.equ_batch_edit = this.permissions["equ_batch_edit"];
  166. },
  167. mounted() {
  168. this.getcompanyList()
  169. },
  170. methods: {
  171. //編輯
  172. clickbianji(row){
  173. this.addagentobj.id=row.id;
  174. this.addagentobj.batchId=row.batchId;
  175. this.addagentobj.realityEquipmentCount=row.realityEquipmentCount;
  176. this.addagentobj.receivableEquipmentCount=row.receivableEquipmentCount;
  177. this.addagentobj.deviceNoStart=row.deviceNoStart;
  178. this.addagentobj.deviceNoEnd=row.deviceNoEnd;
  179. this.addagentobj.remark=row.remark;
  180. this.isshow='编辑';
  181. this.dialogVisible=true;
  182. },
  183. clear(){
  184. this.$refs.addagentobj.resetFields();
  185. },
  186. //添加
  187. editorinfo(){
  188. this.isshow='绑定';
  189. this.addagentobj.id='';
  190. this.addagentobj.batchId='';
  191. this.addagentobj.realityEquipmentCount='';
  192. this.addagentobj.receivableEquipmentCount='';
  193. this.addagentobj.deviceNoStart='';
  194. this.addagentobj.deviceNoEnd='';
  195. this.addagentobj.remark='';
  196. this.dialogVisible=true;
  197. },
  198. //确认添加
  199. editor(){
  200. this.$refs.addagentobj.validate((valid) => {
  201. if (valid) {
  202. if(this.isshow=='绑定'){
  203. this.$api.http.insert(this.addagentobj).then((res) => {
  204. if(res.code==0){
  205. this.dialogVisible=false;
  206. this.$refs.addagentobj.resetFields();
  207. this.Screeningofempty()
  208. }else{
  209. this.$message.error(res.message);
  210. }
  211. });
  212. }else{
  213. this.$api.http.insertupdate(this.addagentobj).then((res) => {
  214. if(res.code==0){
  215. this.dialogVisible=false;
  216. this.$refs.addagentobj.resetFields();
  217. this.Screeningofempty()
  218. }else{
  219. this.$message.error(res.message);
  220. }
  221. });
  222. }
  223. } else {
  224. return false;
  225. }
  226. });
  227. },
  228. //清空筛选
  229. Screeningofempty(){
  230. this.batchId='';
  231. this.getcompanyList()
  232. },
  233. //筛选
  234. Screening(){
  235. this.getcompanyList()
  236. },
  237. // 获取列表
  238. getcompanyList() {
  239. this.tableData=[];
  240. let parmest={
  241. current: this.pageNum,
  242. size: this.pageSize,
  243. batchId:this.batchId
  244. }
  245. this.$api.http.getequipmentbatch(parmest).then((res) => {
  246. console.log(res.data);
  247. this.tableData=res.data.records;
  248. this.total=res.data.total
  249. });
  250. },
  251. handleSizeChange(val) {
  252. this.pageSize=val;
  253. this.getcompanyList()
  254. },
  255. handleCurrentChange(val) {
  256. this.pageNum=val;
  257. this.getcompanyList()
  258. },
  259. },
  260. };
  261. </script>
  262. <style scoped="scoped" lang="scss" >
  263. .box-center {
  264. width: 100%;
  265. padding: 15px;
  266. min-width: 1200px;
  267. padding-bottom: 40px;
  268. }
  269. .cen-tab{
  270. width: 100%;
  271. padding: 15px;
  272. background: #FFFFFF;
  273. margin-top: 15px;
  274. }
  275. .tophove {
  276. color: #ffffff;
  277. background: #2671e2;
  278. }
  279. .app-top {
  280. width: 100%;
  281. background: #ffffff;
  282. box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
  283. border-radius: 4px;
  284. padding-top: 15px;
  285. padding-bottom: 15px;
  286. .app-titel {
  287. width: 100%;
  288. display: flex;
  289. align-items: center;
  290. .label {
  291. font-size: 14px;
  292. font-weight: 400;
  293. color: #32363d;
  294. line-height: 14px;
  295. margin-left: 15px;
  296. }
  297. .toptimeqhuan {
  298. height: 30px;
  299. background: #ffffff;
  300. display: flex;
  301. align-items: center;
  302. }
  303. .toptimeqhuan div {
  304. padding-left: 20px;
  305. padding-right: 20px;
  306. text-align: center;
  307. line-height: 30px;
  308. font-size: 14px;
  309. margin-right: 15px;
  310. border-radius: 4px;
  311. border: 1px solid #e0e0e0;
  312. }
  313. }
  314. }
  315. </style>