选煤厂生产管理平台前端代码
提交 | 用户 | 时间
5cc1d9 1 <template>
D 2   <!-- 搜索 -->
3   <ContentWrap>
4     <el-form
5       class="-mb-15px"
6       :model="queryParams"
7       ref="queryFormRef"
8       :inline="true"
9       label-width="68px"
10     >
11       <el-form-item label="开始时间">
12         <el-date-picker
13           size="mini"
14           v-model="queryParams.startTime"
15           format="YYYY-MM-DD HH:mm:00"
16           value-format="YYYY-MM-DD HH:mm:00"
17           type="datetime"
18           :clearable="false"
19           placeholder="选择日期时间"/>
20       </el-form-item>
21       <el-form-item label="结束时间">
22         <el-date-picker
23           size="mini"
24           v-model="queryParams.endTime"
25           format="YYYY-MM-DD HH:mm:00"
26           value-format="YYYY-MM-DD HH:mm:00"
27           type="datetime"
28           :clearable="false"
29           placeholder="选择日期时间"/>
30       </el-form-item>
31       <el-form-item label="库存煤种" prop="kcmz">
32         <el-select
33           v-model="queryParams.kcmz"
34           class="!w-240px"
35           clearable
36           placeholder="请选择库存煤种"
37         >
38           <el-option
39             v-for="dict in getIntDictOptions(DICT_TYPE.PMS_KCMZ)"
40             :key="dict.value"
41             :label="dict.label"
42             :value="dict.value"
43           />
44         </el-select>
45       </el-form-item>
46       <el-form-item>
47         <el-button @click="handleQuery">
48           <Icon icon="ep:search" class="mr-5px" />
49           搜索
50         </el-button>
51         <el-button @click="resetQuery">
52           <Icon icon="ep:refresh" class="mr-5px" />
53           重置
54         </el-button>
55         <el-button
56           type="primary"
57           plain
58           @click="openForm('create')"
59           v-hasPermi="['data:point:create']"
60         >
61           <Icon icon="ep:plus" class="mr-5px" />
62           新增
63         </el-button>
64         <el-button
65           type="warning"
66           plain
67           @click="handleImport"
68           v-hasPermi="['data:point:import']"
69         >
70           <Icon icon="ep:upload" /> 导入
71         </el-button>
72         <el-button
73           type="success"
74           plain
75           @click="handleExport"
76           :loading="exportLoading"
77           v-hasPermi="['data:point:export']"
78         >
79           <Icon icon="ep:download" />导出
80         </el-button>
81       </el-form-item>
82       <el-form-item>
83         <el-button v-if="!updateKcView" @click="updateKc">调整仓存
84         </el-button>
85       </el-form-item>
86       <el-form-item>
87         <el-button v-if="updateKcView" @click="commitUpdateKc">确认修改
88         </el-button>
89       </el-form-item>
90     </el-form>
91   </ContentWrap>
92
93   <!-- 列表 -->
94   <ContentWrap>
95     <el-table border stripe v-loading="loading" :data="list">
96       <el-table-column type="index" header-align="center" align="center" min-width="50" label="序号"/>
97       <el-table-column prop="lsh" header-align="center" align="center" label="流水号" min-width="200"/>
98       <el-table-column prop="rq" header-align="center" align="center" label="日期" min-width="200"/>
99       <el-table-column prop="kcmzName" header-align="center" align="center" label="原煤" min-width="300"/>
100       <el-table-column prop="nbjrkc" header-align="center" align="center" label="估算库存(t)" min-width="200">
101         <template #default="scope">
102           <el-input-number v-model="scope.row.nbjrkc" :disabled="!updateKcView" :precision="2" :step="0.1"/>
103         </template>
104       </el-table-column>
105       <el-table-column show-overflow-tooltip prop="bz" header-align="center" align="center" label="备注" min-width="400"/>
106     </el-table>
107     <!-- 分页 -->
108     <Pagination
109       :total="total"
110       v-model:page="queryParams.pageNo"
111       v-model:limit="queryParams.pageSize"
112       @pagination="getList"
113     />
114   </ContentWrap>
115   <!--电耗明细-->
116   <Form ref="formRef"/>
117 </template>
118 <script lang="ts" setup>
119   import * as ProductStock from '@/api/prod/productStock'
120   import {ref} from "vue";
121   import download from "@/utils/download";
122   import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
123   import det from './form.vue'
124
125   defineOptions({name: 'ProductStock'})
126
127   const message = useMessage() // 消息弹窗
128   const {t} = useI18n() // 国际化
129
130   const loading = ref(true) // 列表的加载中
131   const total = ref(0) // 列表的总页数
132   const list = ref([]) // 列表的数据
133   const queryParams = reactive({
134     pageNo: 1,
135     pageSize: 10,
136     startDate: undefined,
137     endDate: undefined,
138     xt: undefined
139   })
140   const queryFormRef = ref() // 搜索的表单
141   const updateKcView= ref(false)
142
143   const updateKc = () => {
144     updateKcView.value = true;
145   }
146
147   const commitUpdateKc = () => {
148     this.$http.post('/iailab-iems-coal-proddisp/warehouse/stock/update', this.dataList).then(({ data: res }) => {
149       if (res.code==null || res.code !== 0) {
150         return this.$message.error(res.msg)
151       }
152       this.$message({
153         message: this.$t('prompt.success'),
154         type: 'success',
155         duration: 500,
156       })
157       this.updateKcView = false;
158       this.getDataList();
159     }).catch(() => {})
160   }
161
162   /** 查询列表 */
163   const getList = async () => {
164     loading.value = true
165     try {
166       const page = await ProductStock.getProductStockPage(queryParams)
167       list.value = page.list
168       total.value = page.total
169     } finally {
170       loading.value = false
171     }
172   }
173
174   /** 搜索按钮操作 */
175   const handleQuery = () => {
176     queryParams.pageNo = 1
177     getList()
178   }
179
180   /** 查看数据操作 */
181   const chartView  = ref()
182   const chartHandle = (raw: object) => {
183     chartView.value.open(raw)
184   }
185
186   /** 重置按钮操作 */
187   const resetQuery = () => {
188     queryFormRef.value.resetFields()
189     handleQuery()
190   }
191
192   /** 添加/修改操作 */
193   const formRef = ref()
194   const openForm = (type: string, id?: number) => {
195     formRef.value.open(type, id)
196   }
197
198   /** 删除按钮操作 */
199   const handleDelete = async (id: number) => {
200     try {
201       // 删除的二次确认
202       await message.delConfirm()
203       // 发起删除
204       await ProductStock.deleteProductStock(id)
205       message.success(t('common.delSuccess'))
206       // 刷新列表
207       await getList()
208     } catch {
209     }
210   }
211   /** 测点导入 */
212   const importFormRef = ref()
213   const handleImport = () => {
214     importFormRef.value.open()
215   }
216
217   /** 导出按钮操作 */
218   const exportLoading = ref(false)
219   const handleExport = async () => {
220     try {
221       // 导出的二次确认
222       await message.exportConfirm()
223       // 发起导出
224       exportLoading.value = true
225       const data = await ProductStock.exportProductStock(queryParams)
226       download.excel(data, '测点列表.xlsx')
227     } catch {
228     } finally {
229       exportLoading.value = false
230     }
231   }
232   /** 初始化 **/
233   onMounted(async () => {
234     await getList()
235   })
236 </script>