From 45cdf666979e1248a4c2f4d8c915b747ba11d479 Mon Sep 17 00:00:00 2001
From: linwenling <3256558519@qq.com>
Date: 星期二, 08 八月 2023 19:45:46 +0800
Subject: [PATCH] 新增家庭设备备忘本

---
 ruoyi-ui/src/views/device/equipmentInfo.vue |   35 +++
 ruoyi-ui/src/views/device/memo.vue          |  470 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 ruoyi-ui/src/router/index.js                |   35 +++
 3 files changed, 532 insertions(+), 8 deletions(-)

diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index fc2a3de..1587aee 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -112,6 +112,7 @@
       }
     ]
   },
+  //瀹跺涵璧勪骇绠$悊
     {
     path: '/familymodel/Property',
     component: Layout,
@@ -125,6 +126,23 @@
         component: () => import('@/views/note/propertyInfo'),
         name: 'propertyInfo',
         meta: { title: '瀹跺涵璧勪骇璇︾粏淇℃伅', activeMenu: '/familymodel/zfProperty' }
+      }
+    ]
+  },
+  //瀹跺涵璧勪骇绠$悊澶囧繕鏈�
+  {
+    path: '/familymodel/Property',
+    component: Layout,
+    hidden: true,
+    permissions: ['familymodel:property:memo'],
+
+
+    children: [
+      {
+        path: 'memo/:id(\\d+)',
+        component: () => import('@/views/note/memo'),
+        name: 'memo',
+        meta: { title: '瀹跺涵璧勪骇澶囧繕鏈�', activeMenu: '/familymodel/zfProperty' }
       }
     ]
   },
@@ -179,6 +197,23 @@
       }
     ]
   },
+  //瀹跺涵璁惧澶囧繕鏈�
+  {
+    path: '/familymodel/Device',
+    component: Layout,
+    // permissions: [],
+    hidden: true,
+    permissions: ['familymodel:device:memo'],
+
+    children: [
+      {
+        path: 'memo/:id(\\d+)',
+        component: () => import('@/views/device/memo'),
+        name: 'memo',
+        meta: { title: '瀹跺涵璁惧澶囧繕鏈�',activeMenu: '/familymodel/zfDevice'}
+      }
+    ]
+  },
   //瀹跺涵鏀舵敮鍙拌处
   {
     path: '/familymodel/economy',
diff --git a/ruoyi-ui/src/views/device/equipmentInfo.vue b/ruoyi-ui/src/views/device/equipmentInfo.vue
index 0e5ef72..ea6f948 100644
--- a/ruoyi-ui/src/views/device/equipmentInfo.vue
+++ b/ruoyi-ui/src/views/device/equipmentInfo.vue
@@ -1,8 +1,16 @@
 <template>
   <div class="app-container">
     <div class="form-header mt">
-      <h4 class="dt h4">瀹跺涵璁惧璇︾粏淇℃伅 </h4>
-
+      <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;">
+        <span>瀹跺涵璁惧璇︽儏</span>
+        <div   style="display: flex; align-items: center;">
+          <el-button size="mini" type="text"  @click="checkNote()" v-hasPermi="['person:information:memo']">
+            <div class="form" ><el-icon  style="padding-right:110px;"></el-icon>
+              <span class="text" style="width: 69px;height: 26px;font-size: 16px;
+            font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">澶囧繕鏈�</span></div>
+          </el-button>
+        </div>
+      </h1>
     </div>
     <!-- 鍚嶇О銆佹椂闂淬�佽喘涔颁汉銆佸唴瀹广�佸湴鐐广�佸娉� -->
     <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" >
@@ -11,7 +19,7 @@
         <el-input v-model="formData.name" placeholder="璇疯緭鍏ヨ澶囧悕绉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
       </el-form-item>
       <el-form-item label="鏃堕棿" prop="happenTime">
-        <el-input v-model="formData.happenTime" placeholder="璇疯緭鍏ユ椂闂�" type="date" clearable :style="{width: '100%'}" :disabled="dsb">
+        <el-input v-model="formData.happenTime" placeholder="璇疯緭鍏ユ椂闂�" clearable :style="{width: '100%'}" :disabled="dsb">
         </el-input>
       </el-form-item>
       <el-form-item label="璐拱浜�" prop="buyer">
@@ -94,7 +102,7 @@
         multiple
         list-type="picture-card"
         :on-preview="handleFileCardPreview"
-        :on-remove="handleRemoveFile"
+        :on-remove="handleRemove"
         :http-request="requestUpload"
         :show-file-list="true"
       >
@@ -118,11 +126,12 @@
                 </span>
                 <span
                   v-if="isShow"
+                  @click="handleRemove(file)"
                   class="el-upload-list__item-delete"
-                  @click="handleDownload(file.url)"
+
                 >
-                 <i class="el-icon-download"></i>
-                 </span>
+                  <i class="el-icon-download"></i>
+                </span>
                 <span
                   v-if="isShow"
                   class="el-upload-list__item-delete"
@@ -194,7 +203,7 @@
           trigger: 'change'
         }],
         status: [{
-          // required: true,
+          required: true,
           message: '璇烽�夋嫨鏄惁娉ㄩ攢',
           trigger: 'change'
         }],
@@ -378,6 +387,13 @@
       this.dsb = false
       this.btn = true
     },
+    //鏌ョ湅澶囧繕鏈�
+    checkNote(row){
+
+      const id = this.$route.params && this.$route.params.id;
+
+      this.$router.push("/familymodel/Device/memo/" + id );
+    },
     requestUpload(params)
     {
       var file = params.file;
@@ -415,6 +431,9 @@
   display: block;
 
 }
+.form{
+  background:center/11% no-repeat url('../../assets/icons/form.png') ;
+}
 .pt{
   right: 10px;
   top:-3px;
diff --git a/ruoyi-ui/src/views/device/memo.vue b/ruoyi-ui/src/views/device/memo.vue
new file mode 100644
index 0000000..719c3ca
--- /dev/null
+++ b/ruoyi-ui/src/views/device/memo.vue
@@ -0,0 +1,470 @@
+<template>
+  <div class="app-container" style="opacity: 1;">
+    <div class="box1"><h2>澶囧繕鏈�</h2></div>
+
+    <el-button class="button1" size="mini" type="text"  @click="handleAdd"  v-hasPermi="['system:role:add']">
+      <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn> </el-button>
+    <el-table v-loading="loading" :data="memoList"  @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;width: 60%;">
+      <el-table-column  label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="150"/>
+
+      <el-table-column label="鏃堕棿" prop="happenTime" sortable width="180px" align="center">
+        <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '鈥斺�斺�斺��'}}</template>
+      </el-table-column>
+      <el-table-column label="鍐呭" prop="content" sortable width="180px" />
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope" v-if="scope.row.roleId !== 1">
+
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['familymodel:economy:info']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            class="button_delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:role:remove']"
+          > <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn></el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+      style="background: #FEF7FC;"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀硅祫浜т俊鎭厤缃璇濇 -->
+
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
+
+        <el-form-item label="鏃堕棿" prop="happenTime">
+          <el-date-picker
+            v-model='formDat.happenTime'
+            type='date'
+            placeholder='閫夋嫨鏃ユ湡'
+          ></el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="鍐呭" prop="content">
+          <el-input v-model="formDat.content" placeholder="璇疯緭鍏ュ唴瀹�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+
+
+      </el-form>
+
+      <h4 class="form-header"> </h4>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitDataScope">纭� 瀹�</el-button>
+        <el-button @click="cancelData">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 鍒嗛厤瑙掕壊鏁版嵁鏉冮檺瀵硅瘽妗� -->
+    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
+
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+
+
+
+//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
+import {addNote,listNote,enload,delNote, uploadPic} from "@/api/allmemo/index";
+import { TimeSelect } from "element-ui";
+
+export default {
+  name: "Role",
+  dicts: ['sys_normal_disable'],
+  data() {
+    return {
+      // 閬僵灞�
+      disabled: false,
+      loading: true,
+      formData:[],
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 瀹跺ぇ浜嬭琛ㄦ牸鏁版嵁
+      memoList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+      openDataScope: false,
+      menuExpand: false,
+      menuNodeAll: false,
+      deptExpand: true,
+      deptNodeAll: false,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      // 鏁版嵁鑼冨洿閫夐」
+      fot:[".jpg",".jif"],
+      fileList:[
+      ],
+      fileListOther:[
+
+      ],
+      dsb:true,
+      btn:false,
+      formDat: {
+
+        content: undefined,
+        happenTime: undefined,
+        fid:2017,
+        cid:undefined,
+      },
+      // 鑿滃崟鍒楄〃
+      menuOptions: [],
+      // 閮ㄩ棬鍒楄〃
+      deptOptions: [],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+
+        happenTime: [{
+          required: true,
+          message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
+          trigger: 'change'
+        }],
+        content: [{
+          required: true,
+          message: '璇疯緭鍏ュ唴瀹�',
+          trigger: 'blur'
+        }],
+        fid: [{
+          required: true,
+          // message: '璇疯緭鍏ュ唴瀹�',
+          // trigger: 'blur'
+        }],
+
+        cid: [{
+          required: true,
+          // message: '璇疯緭鍏ュ唴瀹�',
+          // trigger: 'blur'
+        }],
+
+      },
+      typeOptions: [],
+
+    };
+  },
+  created() {
+
+    const cid = this.$route.params && this.$route.params.id;
+
+    this.getList(2007,cid);
+
+  },
+  methods: {
+
+    // 鍙栨秷鎸夐挳
+    cancelData() {
+      this.open = false;
+      this.reset();
+    },
+
+    //闅旇鍙樿壊
+    tableRowClassName({ row, rowIndex }) {
+      if (rowIndex % 2 == 0) {
+        return "statistics-warning-row1";
+      } else {
+        return "statistics-warning-row";
+      }
+    },
+
+    /** 鏌ヨ瑙掕壊鍒楄〃 */
+
+    getList(fid,cid) {
+
+      this.loading = true;
+      this.queryParams.cid = cid
+      this.queryParams.fid = fid
+      this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
+      this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
+
+      listNote(cid, 2017).then(response => {
+          this.memoList = response.data;
+          console.log(this.memoList)
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    handleRemove(file) {
+      for(let i = 0; i < this.fileListOther.length; i++)
+      {
+        if(this.fileListOther[i].url==file.url)
+          this.$delete(this.fileListOther,i);
+      }
+    },
+
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    getCid(){
+      const cid = this.$route.params && this.$route.params.id;
+      return cid
+    },
+    getRowId(row)
+    {
+      return row.id
+    },
+    // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+    cancelDataScope() {
+      this.openDataScope = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      if (this.$refs.menu != undefined) {
+        this.$refs.menu.setCheckedKeys([]);
+      }
+      this.menuExpand = false,
+        this.menuNodeAll = false,
+        this.deptExpand = true,
+        this.deptNodeAll = false,
+        this.form = {
+          roleId: undefined,
+          roleName: undefined,
+          roleKey: undefined,
+          roleSort: 0,
+          status: "0",
+          menuIds: [],
+          deptIds: [],
+          menuCheckStrictly: true,
+          deptCheckStrictly: true,
+          remark: undefined
+        };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      const fid = 2017;
+      const cid = this.$route.params && this.$route.params.id;
+      this.queryParams.pageNum = 1;
+      this.getList(fid,cid);
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      console.log(this.ids)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "鏂板闅愮澶囧繕鏈�";
+    },
+
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      const id = row.id;
+      let jd = true
+
+      this.$router.push({
+        path:"/self/travel/travelInfo/" + id,
+        query:{
+          detail:jd
+        }
+      });
+    },
+
+
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
+    submitDataScope: function() {
+      const cid = this.$route.params && this.$route.params.id;
+      const fid =2017;
+      let ul = this.fileList.map(function (elem){
+        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      }).join(",")
+      let uls = this.fileListOther.map(function (elem){
+        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      }).join(",")
+      this.formDat.fid = 2017;
+      this.formDat.cid = cid ;
+      this.formDat.url = ul+","+uls
+
+      this.$refs["elForm"].validate(valid => {
+        if (valid) {
+
+          addNote(this.formDat).then(response => {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.open = false;
+            // this.queryParams.cid = cid
+            // this.queryParams.fid = fid
+            this.getList(this.formDat.fid,this.formDat.cid);
+
+            resetQuery();
+          });
+        }
+      });
+      //娓呯┖formDat瀵硅薄鐨勬暟鎹�
+      Object.keys(this.formDat).forEach(key => {
+        this.formDat[key] = '';
+      });
+    },
+    requestUpload(params)
+    {
+      var file = params.file;
+      var formData = new FormData();
+      formData.append('uploadFile', file);
+      let _this = this
+
+      uploadPic(formData).then(response => {
+        let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
+
+        if(_this.fot.includes(pth) === true)
+        {
+          _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+
+        }
+
+        else{
+          _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+
+        }
+      })
+
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const id = row.id || this.id;
+      const fid = 2017;
+      const cid = this.$route.params && this.$route.params.id;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鎵�閫夋暟鎹」锛�').then(function() {
+        return delNote(id);
+      }).then(() => {
+        // this.getList(fid,cid);
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        this.getList(fid,cid);
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      const Ids = this.ids;
+
+      if(Ids.length==0)
+      {
+        this.download('/zfEconomy/export', {
+          ...this.queryParams
+        }, `zfEconomy_${new Date().getTime()}.xlsx`)
+      }else
+      {
+        this.download('/zfEconomy/export1/'+Ids, {
+        }, `zfEconomy_${new Date().getTime()}.xlsx`)
+      }
+    }
+    ,
+    handleExportTemplate(){
+      this.download('/zfEconomy/model', {
+
+      }, `zfEconomy_${new Date().getTime()}.xlsx`)
+    },
+    /** 瀵煎叆鎿嶄綔*/
+    handleEnport(params){
+      var file = params.file;
+      var formData = new FormData();
+      formData.append('excelImport', file);
+      let _this = this
+      alert(file)
+      enload(formData).then(response => {
+        _this.getList();
+        Message({ message: "瀵煎叆鎴愬姛", type: 'warning' })
+
+      }).catch(err)
+      {
+        Message({ message: "瀵煎叆澶辫触", type: 'error' })
+      }
+
+    }
+  },
+
+  //  寮圭獥
+  handleShow(scope){
+
+    this.openDataScope = true
+    this.getList()
+  }
+
+};
+</script>
+
+<style>
+.el-table__row.statistics-warning-row {
+  background: #E0EEFE;
+
+}
+.el-table__row.statistics-warning-row1 {
+  background: #FFEFF2;
+
+}
+
+.button1 {
+  background:center no-repeat url('../../assets/icons/add1.png') ;
+  /* margin-left: 69.5vw; */
+  margin-left: 780px;
+}
+
+.button_delete {
+  background: center no-repeat url('../../assets/images/鍒犻櫎2.png') ;
+
+  /* margin-left: 66vw; */
+  width: 5px;
+
+  /* background: #000000; */
+}
+
+.box1,.button1{
+  display: inline-block;
+}
+</style>

--
Gitblit v1.9.1