Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

328 wiersze
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 type="primary" @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()" type="primary"
  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. <el-button v-if="equ_batch_edit" type="text" @click="clickbianji(scope.row)">修改</el-button>
  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.pageNum=1
  232. this.getcompanyList()
  233. },
  234. //筛选
  235. Screening(){
  236. this.pageNum=1
  237. this.getcompanyList()
  238. },
  239. // 获取列表
  240. getcompanyList() {
  241. this.tableData=[];
  242. let parmest={
  243. current: this.pageNum,
  244. size: this.pageSize,
  245. batchId:this.batchId
  246. }
  247. this.$api.http.getequipmentbatch(parmest).then((res) => {
  248. console.log(res.data);
  249. this.tableData=res.data.records;
  250. this.total=res.data.total
  251. });
  252. },
  253. handleSizeChange(val) {
  254. this.pageSize=val;
  255. this.getcompanyList()
  256. },
  257. handleCurrentChange(val) {
  258. this.pageNum=val;
  259. this.getcompanyList()
  260. },
  261. },
  262. };
  263. </script>
  264. <style scoped="scoped" lang="scss" >
  265. .box-center {
  266. width: 100%;
  267. padding: 15px;
  268. min-width: 1000px;
  269. padding-bottom: 40px;
  270. }
  271. .cen-tab{
  272. width: 100%;
  273. padding: 15px;
  274. background: #FFFFFF;
  275. margin-top: 15px;
  276. }
  277. .tophove {
  278. color: #ffffff;
  279. background: #2671e2;
  280. }
  281. .app-top {
  282. width: 100%;
  283. background: #ffffff;
  284. box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
  285. border-radius: 4px;
  286. padding-top: 15px;
  287. padding-bottom: 15px;
  288. .app-titel {
  289. width: 100%;
  290. display: flex;
  291. align-items: center;
  292. .label {
  293. font-size: 14px;
  294. font-weight: 400;
  295. color: #32363d;
  296. line-height: 14px;
  297. margin-left: 15px;
  298. }
  299. .toptimeqhuan {
  300. height: 30px;
  301. background: #ffffff;
  302. display: flex;
  303. align-items: center;
  304. }
  305. .toptimeqhuan div {
  306. padding-left: 20px;
  307. padding-right: 20px;
  308. text-align: center;
  309. line-height: 30px;
  310. font-size: 14px;
  311. margin-right: 15px;
  312. border-radius: 4px;
  313. border: 1px solid #e0e0e0;
  314. }
  315. }
  316. }
  317. </style>