Ver código fonte

`fix 单位数据对接`

wenhongquan 2 anos atrás
pai
commit
f035c171f6

+ 1 - 0
ruoyi-ui-vue3/package.json

@@ -25,6 +25,7 @@
     "fuse.js": "6.6.2",
     "js-cookie": "3.0.1",
     "jsencrypt": "3.3.1",
+    "lodash": "^4.17.21",
     "moment": "^2.29.4",
     "nprogress": "0.2.0",
     "pinia": "2.0.22",

+ 44 - 0
ruoyi-ui-vue3/src/api/data/unit.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询规则列表
+export function listUnit(query) {
+  return request({
+    url: '/data/unit/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询规则详细
+export function getUnit(id) {
+  return request({
+    url: '/data/unit/' + id,
+    method: 'get'
+  })
+}
+
+// 新增规则
+export function addUnit(data) {
+  return request({
+    url: '/data/unit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改规则
+export function updateUnit(data) {
+  return request({
+    url: '/data/unit',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除规则
+export function delUnit(id) {
+  return request({
+    url: '/data/unit/' + id,
+    method: 'delete'
+  })
+}

+ 93 - 51
ruoyi-ui-vue3/src/views/system/units/index.vue

@@ -7,39 +7,30 @@
 
           <el-button
             type="primary"
-            @click="
-              detailshow = true;
-              edittype = 1;
-            "
-            >添加</el-button
-          >
+            @click="showdetail(null,1)">添加</el-button>
         </div>
       </template>
       <el-row>
         <el-col :span="8">
-          <el-table :data="dwtypetabledata" :border="true">
-            <el-table-column label="单位名称"></el-table-column>
+          <el-table ref="dwtypetable" :data="dwtypetabledata"   @current-change="handleCurrentChange"   highlight-current-row :border="true">
+            <el-table-column prop="name" label="单位名称"></el-table-column>
           </el-table>
         </el-col>
         <el-col :span="16" style="padding-left: 10px">
           <el-table :data="dwtabledata" :border="true" :height="gettbheight()">
-            <el-table-column label="名称"></el-table-column>
-            <el-table-column label="单位符号"></el-table-column>
-            <el-table-column label="单位名称"></el-table-column>
-            <el-table-column label="标准名称"></el-table-column>
-            <el-table-column label="单位分类"></el-table-column>
-            <el-table-column label="单位换算比例"></el-table-column>
-            <el-table-column label="偏移量"></el-table-column>
-            <el-table-column label="操作">
+            <el-table-column prop="name" label="名称"></el-table-column>
+            <el-table-column prop="unitSymbol" label="单位符号"></el-table-column>
+            <el-table-column prop="unitName" label="单位名称"></el-table-column>
+            <el-table-column prop="isStandard" label="标准名称"></el-table-column>
+            <el-table-column prop="unitType" label="单位分类"></el-table-column>
+            <el-table-column prop="toStandardRatio" label="单位换算比例"></el-table-column>
+            <el-table-column prop="toOffset" label="偏移量"></el-table-column>
+            <el-table-column prop="name" label="操作">
               <template #default="scope">
                 <div>
                   <el-button
                     link
-                    @click="
-                      detailshow = true;
-                      edittype = 3;
-                    "
-                  >
+                    @click="showdetail(scope.row,3)">
                     <el-tooltip effect="dark" content="详情">
                       <el-icon>
                         <Memo />
@@ -48,10 +39,7 @@
                   </el-button>
                   <el-button
                     link
-                    @click="
-                      detailshow = true;
-                      edittype = 2;
-                    "
+                    @click="showdetail(scope.row,2)"
                   >
                     <el-tooltip effect="dark" content="编辑">
                       <el-icon>
@@ -84,26 +72,26 @@
           <el-input v-model="dwform.name"  :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="单位符号">
-          <el-input v-model="dwform.name"  :disabled="edittype==3"/>
+          <el-input v-model="dwform.unitSymbol"  :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="单位名称">
-          <el-input v-model="dwform.name" :disabled="edittype==3"/>
+          <el-input v-model="dwform.unitName" :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="标准名称">
-          <el-input v-model="dwform.name" :disabled="edittype==3"/>
+          <el-input v-model="dwform.isStandard" :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="单位分类">
-          <el-input v-model="dwform.name" :disabled="edittype==3"/>
+          <el-input v-model="dwform.unitType" :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="换算比例">
-          <el-input v-model="dwform.name" :disabled="edittype==3"/>
+          <el-input v-model="dwform.toStandardRatio" type="number" :disabled="edittype==3"/>
         </el-form-item>
         <el-form-item label="偏移量">
-          <el-input v-model="dwform.name" :disabled="edittype==3"/>
+          <el-input v-model="dwform.toOffset" type="number" :disabled="edittype==3"/>
         </el-form-item>
       </el-form>
       <template #footer>
-      <div class="dialog-footer">
+      <div class="dialog-footer" v-if="edittype!=3">
          <el-button @click="detailshow=false;"> 取消 </el-button>
           <el-button type="primary" @click="dosavedw"> 保存 </el-button>
       </div>
@@ -113,41 +101,95 @@
 </template>
 
 <script setup lang="ts" name="Units">
-import { ref } from "vue";
+import {onMounted, ref} from "vue";
+import moment from 'moment'
+import { listUnit,addUnit,delUnit,updateUnit,getUnit } from '@/api/data/unit.js'
+import {ElMessage} from "element-plus";
+import _ from "lodash"
 
 const dwtypetabledata = ref([]);
-const dwtabledata = ref([1,1,1,1,1,1]);
+const dwtabledata = ref([]);
 
 const edittype = ref(1);
 const detailshow = ref(false);
 
-const dwform = ref({
-  id: 0,
-  name: "",
-  unitSymbol: "",
-  unitName: "",
-  isStandard: "",
-  unitType: "",
-  toStandardRatio: 0,
-  toOffset: 0,
-  remark: "",
-  creator: "",
-  ctime: "",
-  modifier: "",
-  utime: "",
-});
+const dwtypetable =ref();
 
-const gettbheight = () => {
+const dwform = ref({});
+const doinint =()=>{
+  dwform.value = {
+    name: "",
+    unitSymbol: "",
+    unitName: "",
+    isStandard: "",
+    unitType: "",
+    toStandardRatio: 1,
+    toOffset: 1,
+    remark: "",
+    creator: "",
+    ctime: "",
+    modifier: "",
+    utime: "",
+  };
+}
+doinint();
 
+
+const showdetail = (item,type) => {
+  detailshow.value = true;
+  edittype.value = type;
+  dwform.value = item;
+  if(type==1){
+    doinint();
+  }
+};
+
+const gettbheight = () => {
   return window.innerHeight - 200;
 }
 
-const dosavedw = () => {
+const alldata = ref([]);
+const getalldata = () => {
+  listUnit({}).then(res=>{
+    alldata.value = res["data"];
+    dwtabledata.value = res["data"];
+    dwtypetabledata.value = (["全部"].concat(_.uniq(res.data.map(item=>item.unitType)))).map(i=> {return {"name":i};});
+    dwtypetable.value.setCurrentRow(dwtypetabledata.value[0]);
+  })
+};
 
+const handleCurrentChange = (val) => {
+  if(val.name=='全部'){
+    dwtabledata.value = alldata.value;
+  }else {
+    dwtabledata.value = alldata.value.filter(item => item.unitType == val.name);
+  }
+};
+const dosavedw = () => {
   detailshow.value = false;
+  if(edittype.value==1){
+    //新增
+    addUnit(dwform.value).then(res=>{
+       ElMessage.success('新增成功');
+       getalldata();
+    })
+  }
+  if(edittype.value == 2){
+    //编辑
+    updateUnit(dwform.value).then(res=>{
+      ElMessage.success('编辑成功');
+      getalldata();
+    })
+  }
+
 
 };
 
+onMounted(()=>{
+  getalldata();
+})
+
+
 </script>
 
 <style lang="scss" scoped>