From 188d4a764d8bcedf53ac67127b4b9e142f79b1eb Mon Sep 17 00:00:00 2001
From: linwenling <3256558519@qq.com>
Date: 星期日, 27 八月 2023 21:30:07 +0800
Subject: [PATCH] 旅游完善

---
 ruoyi-ui/src/views/travel/travelInfo.vue |  179 ++++++------
 ruoyi-ui/src/api/travel/index.js         |   77 +++--
 ruoyi-ui/src/views/travel/Info.vue       |  270 +++++++++++++++++--
 ruoyi-ui/src/views/travel/index.vue      |  303 ++++++++-------------
 ruoyi-ui/src/router/index.js             |    2 
 5 files changed, 494 insertions(+), 337 deletions(-)

diff --git a/ruoyi-ui/src/api/travel/index.js b/ruoyi-ui/src/api/travel/index.js
index c9b1d5a..0df8f4b 100644
--- a/ruoyi-ui/src/api/travel/index.js
+++ b/ruoyi-ui/src/api/travel/index.js
@@ -12,7 +12,7 @@
 }
 
 
-// 鏍规嵁id鏌ヨ鎵�鏈夋敹鏀彴璐︿俊鎭�
+// 鏍规嵁id鏌ヨ
 export function getTravelPriceInfo(id) {
   return request({
     url: '/zTravelPrice/' + id,
@@ -75,37 +75,44 @@
 //   })
 // }
 export function listTravelBase(query) {
-    return request({
-      url: '/zTravelBase/all',
-      method: 'get',
-      params: query
-    })
-  }
-  
-  
-  // 鏍规嵁id鏌ヨ鎵�鏈夋敹鏀彴璐︿俊鎭�
-  export function getTravelBaseInfo(id) {
-    return request({
-      url: '/zTravelBase/' + id,
-      method: 'get',
-  
-    })
-  }
-  
-  //鏂板鏀舵敮鍙拌处
-  export function addTravelBase(data)
-  {
-    return request({
-      url: '/zTravelBase',
-      method: 'post',
-      data: data
-    })
-  }
-  
-  // 鍒犻櫎瀹跺涵璁惧
-  export function delTravelBase(Ids) {
-    return request({
-      url: '/zTravelBase/' + Ids,
-      method: 'delete'
-    })
-  }
\ No newline at end of file
+  return request({
+    url: '/zTravelBase/all',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 鏍规嵁id鏌ヨ鎵�鏈夋敹鏀彴璐︿俊鎭�
+export function getTravelBaseInfo(id) {
+  return request({
+    url: '/zTravelBase/' + id,
+    method: 'get',
+
+  })
+}
+
+//鏂板鏀舵敮鍙拌处
+export function addTravelBase(data)
+{
+  return request({
+    url: '/zTravelBase',
+    method: 'post',
+    data: data
+  })
+}
+//淇敼瀹跺涵璁惧
+export function updateTravelBase(data) {
+  return request({
+    url: '/zTravelBase',
+    method: 'put',
+    data: data
+  })
+}
+// 鍒犻櫎瀹跺涵璁惧
+export function delTravelBase(Ids) {
+  return request({
+    url: '/zTravelBase/' + Ids,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index f453471..b4a48e2 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -439,7 +439,7 @@
     hidden: true,
     children: [
       {
-        path: 'edit/:id(\\d+)',
+        path: 'edit/:id',
         component: () => import('@/views/travel/edit'),
         name: 'edit',
         meta: { title: '缂栬緫',activeMenu: '/geren/Ztravel'}
diff --git a/ruoyi-ui/src/views/travel/Info.vue b/ruoyi-ui/src/views/travel/Info.vue
index f3538b3..14ae47f 100644
--- a/ruoyi-ui/src/views/travel/Info.vue
+++ b/ruoyi-ui/src/views/travel/Info.vue
@@ -162,46 +162,45 @@
 
     <!-- 娣诲姞鎴栦慨鏀硅祫浜т俊鎭厤缃璇濇 -->
 
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
       <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
-
+        <h4 class="form-header">琛岀▼鍐呭 </h4>
+        <el-form-item label="鏍囬" prop="title">
+          <el-input v-model="formDat.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
         <el-form-item label="鏃堕棿" prop="happenTime">
-          <el-date-picker
+          <el-input
             v-model='formDat.happenTime'
             type='date'
             placeholder='閫夋嫨鏃ユ湡'
-          ></el-date-picker>
+          ></el-input>
         </el-form-item>
         <el-form-item label="鍦扮偣" prop="address">
           <el-input v-model="formDat.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
-        <!-- <el-form-item label="鍦扮偣" prop="price">
-          <el-select v-model="formDat.price" placeholder="璇烽�夋嫨鏀跺叆/鏀嚭" clearable :style="{width: '100%'}"  >
-            <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item> -->
         <el-form-item label="浜虹墿" prop="people">
           <el-input v-model="formDat.people" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
-        <el-form-item label="鏍囬" prop="title">
-          <el-input v-model="formDat.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" >
-          </el-input>
-        </el-form-item>
         <el-form-item label="鏃呮湡" prop="travelPeriod">
-          <el-input v-model="formDat.travelPeriod" placeholder="璇疯緭鍏ヤ娇鐢ㄤ汉" clearable :style="{width: '100%'}" >
+          <el-input v-model="formDat.travelPeriod" placeholder="璇疯緭鍏ユ梾鏈�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
         <el-form-item label="鎸佽瘉鏃呮父" prop="certificate">
-          <el-input v-model="formDat.certificate" placeholder="璇疯緭鍏ヨ瘉浠�" clearable :style="{width: '100%'}" >
-          </el-input>
+          <el-select v-model="formDat.certificate" placeholder="璇烽�夋嫨璇佷欢" clearable :style="{width: '80%'}" >
+            <el-option label="灞呮皯韬唤璇�" value="灞呮皯韬唤璇�"></el-option>
+            <el-option label="涓存椂韬唤璇�" value="涓存椂韬唤璇�"></el-option>
+            <el-option label="鎴峰彛鏈�" value="鎴峰彛鏈�"></el-option>
+            <el-option label="鎶ょ収" value="鎶ょ収"></el-option>
+            <el-option label="瀛︾敓璇�" value="瀛︾敓璇�"></el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="璐圭敤" prop="totalPrice">
+        <!-- <el-form-item label="璐圭敤" prop="totalPrice">
           <el-input v-model="formDat.totalPrice" placeholder="璇疯緭鍏ユ�诲叡璐圭敤" clearable :style="{width: '100%'}" >
           </el-input>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="鍏垂/鑷垂" prop="self">
           <el-select v-model="formDat.self" placeholder="璇烽�夋嫨鑷垂/鍏垂" clearable :style="{width: '100%'}"  >
             <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
@@ -211,6 +210,7 @@
         <el-form-item label="澶囨敞" prop="remark">
           <el-input v-model="formDat.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input>
         </el-form-item>
+
 
         <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
         <el-upload
@@ -269,6 +269,34 @@
         </el-upload>
 
       </el-form>
+      <el-form ref="elForm1" :model="formDat1" :rules="rules1" size="medium" label-width="100px">
+        <h4 class="form-header">璐圭敤鏄庣粏 </h4>
+        <el-form-item label="鍐呭" prop="content">
+          <el-input v-model="formDat1.content" placeholder="璇疯緭鍏ュ唴瀹�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="浣忓璐圭敤" prop="stay">
+          <el-input v-model="formDat1.stay" placeholder="璇疯緭鍏ヤ綇瀹胯垂鐢�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="浜ら�氳垂鐢�" prop="traffic">
+          <el-input v-model="formDat1.traffic" placeholder="璇疯緭鍏ヤ氦閫氳垂鐢�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="椁愯垂" prop="eat">
+          <el-input v-model="formDat1.eat" placeholder="璇疯緭鍏ラ璐圭敤" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="璐墿璐圭敤" prop="shopping">
+          <el-input v-model="formDat1.shopping" placeholder="璇疯緭鍏ヨ喘鐗╄垂鐢�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="闂ㄧエ璐圭敤" prop="entrance">
+          <el-input v-model="formDat1.entrance" placeholder="璇疯緭鍏ラ棬绁ㄨ垂鐢�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+
+      </el-form>
       <h4 class="form-header"> </h4>
 
       <div slot="footer" class="dialog-footer">
@@ -292,7 +320,7 @@
 
 
 //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
-import {addTravelBase,listTravelBase,enload,delTravelBase, uploadPic} from "@/api/travel/index";
+import {addTravelBase,listTravelPrice,getTravelBaseInfo,listTravelBase,enload,delTravelBase, uploadPic,updateTravelPrice} from "@/api/travel/index";
 
 export default {
   name: "Role",
@@ -315,6 +343,7 @@
       total: 0,
       // 瀹跺ぇ浜嬭琛ㄦ牸鏁版嵁
       travelBase: [],
+      detailList:[],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
@@ -347,6 +376,18 @@
         self: undefined,
         remark: undefined,
         url: undefined,
+      },
+      formDat1: {
+        eat: undefined,
+        stay: undefined,
+        traffic: undefined,
+        entrance: undefined,
+        shopping:undefined,
+        content: undefined,
+      },
+      formDat2: {
+        id: undefined,
+        detailList: undefined,
       },
       // 鑿滃崟鍒楄〃
       menuOptions: [],
@@ -413,6 +454,40 @@
         }],
 
       },
+      rules1: {
+        stay: [{
+          required: true,
+          message: '璇疯緭鍏ヤ汉鐗�',
+          trigger: 'blur'
+        }],
+
+        content: [{
+          required: true,
+          message: '璇疯緭鍏ュ湴鐐�',
+          trigger: 'blur'
+        }],
+        traffic: [{
+          required: true,
+          message: '璇疯緭鍏ユ爣棰�',
+          trigger: 'blur'
+        }],
+        entrance: [{
+          required: true,
+          message: '璇疯緭鍏ユ梾鏈�',
+          trigger: 'blur'
+        }],
+        eat: [{
+          required: true,
+          message: '璇疯緭鍏ヨ瘉浠�',
+          trigger: 'blur'
+        }],
+        shopping: [{
+          required: true,
+          message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
+          trigger: 'change'
+        }],
+
+      },
       typeOptions: [
         {
           value: '0',
@@ -436,8 +511,9 @@
   },
   created() {
 
-    const id = this.$route.params && this.$route.params.id;
 
+    const id = this.$route.params && this.$route.params.id;
+    this.getList1();
     this.getList(id);
 
   },
@@ -491,11 +567,30 @@
           //  alert(123)
           //   console.log(response.data)
           this.travelBase = response.data.data;
-          console.log(this.travelBase)
+          // console.log(this.travelBase)
           this.total = response.data.total;
           this.loading = false;
         }
       );
+
+    },
+    getList1() {
+      this.loading = true;
+      const id = this.$route.params && this.$route.params.id;
+      return new Promise((resolve, reject) => {
+        listTravelPrice(this.queryParams).then(response => {
+          // console.log(response.data.data);
+          const filteredData = response.data.data.find(item => item.id === id);
+          this.total = response.data.total;
+          this.loading = false;
+          const detailList = filteredData.detailList;
+          // console.log(detailList);
+          resolve(detailList);
+        }).catch(error => {
+          console.error("璇锋眰閿欒:", error);
+          reject(error);
+        });
+      });
     },
     handleRemove(file) {
       for(let i = 0; i < this.fileListOther.length; i++)
@@ -593,7 +688,14 @@
       this.dialogVisible = true;
     },
     /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
-    submitDataScope: function() {
+    submitDataScope: async function() {
+      this.formDat2.detailList = [];
+      console.log("璋冭瘯");
+      console.log(this.formDat2.detailList);
+      await this.getList1().then(detailList => {
+        this.formDat2.detailList = detailList;
+        console.log(this.formDat2.detailList);
+      });
 
       let ul = this.fileList.map(function (elem){
         return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
@@ -602,6 +704,24 @@
         return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
       }).join(",")
       this.formDat.url = ul+","+uls
+      const fid = this.$route.params && this.$route.params.id;
+      this.formDat.feeId = this.$route.params && this.$route.params.id;
+      this.formDat1.happenTime = this.formDat.happenTime;
+      this.formDat2.detailList.push(this.formDat1);
+      this.formDat2.id = this.$route.params && this.$route.params.id;
+      const stay = parseFloat(this.formDat1.stay);
+      const traffic = parseFloat(this.formDat1.traffic);
+      const eat = parseFloat(this.formDat1.eat);
+      const shopping = parseFloat(this.formDat1.shopping);
+      const entrance = parseFloat(this.formDat1.entrance);
+
+      const totalPrice = stay + traffic + eat + shopping + entrance;
+      console.log("鎬昏垂鐢�");
+      console.log(totalPrice);
+      this.formDat.totalPrice=totalPrice;
+      console.log("111");
+      console.log(this.formDat2)
+
       this.$refs["elForm"].validate(valid => {
         if (valid) {
 
@@ -610,6 +730,18 @@
             this.open = false;
             this.getList(fid);
           });
+
+        }
+      });
+      this.$refs["elForm1"].validate(valid => {
+        if (valid) {
+
+
+          updateTravelPrice(this.formDat2).then(response => {
+            this.$modal.msgSuccess("璐圭敤鏂板鎴愬姛");
+            this.open = false;
+          });
+
         }
       });
     },
@@ -637,15 +769,95 @@
 
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
+    async handleDelete(row) {
       const Ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎鎵�閫夋暟鎹」锛�').then(function() {
-        return delTravelBase(Ids);
-      }).then(() => {
-        this.getList();
+      const id = row.id || this.ids;
+
+      try {
+        const response = await getTravelBaseInfo(id);
+        const baseDate = response.data.totalPrice;
+        console.log("112");
+        console.log(baseDate);
+
+        const detailList = await this.getList1();
+        this.detailList = detailList;
+        console.log(this.detailList);
+
+        const targetTotalCost = baseDate; // 鐩爣 totalCost 鍊�
+        let targetId = null; // 鐩爣鏁版嵁鐨� id
+
+        for (const detail of this.detailList) {
+          if (detail.totalCost === targetTotalCost) {
+            targetId = detail.id;
+            console.log(targetId);
+            break;
+          }
+        }
+
+        const detailList2 = this.detailList.filter((detail) => detail.id !== targetId);
+        console.log(detailList2);
+        const formDat3 = {}
+        formDat3.detailList = detailList2
+        const id2 = this.$route.params && this.$route.params.id;
+        console.log(id2);
+        formDat3.id = id2;
+        console.log(formDat3);
+        await updateTravelPrice(formDat3);
+        this.open = false;
+
+        await delTravelBase(Ids);
+        const fid = this.queryParams.fid
+        this.getList(fid);
         this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {});
+      } catch (error) {
+        console.error(error);
+      }
     },
+//     async handleDelete(row) {
+//       const Ids = row.id || this.ids;
+//       const id = row.id ||this.ids
+//       await getTravelBaseInfo(id).then(async (response) => {
+//       const baseDate = response.data.totalPrice;
+//       console.log("112");
+//       console.log(baseDate);
+
+//       // 鑾峰彇璇︾粏鍒楄〃
+//       await this.getList1().then((detailList) => {
+//         this.detailList = detailList;
+//         console.log(this.detailList);
+
+//         const targetTotalCost = baseDate; // 鐩爣 totalCost 鍊�
+//         let targetId = null; // 鐩爣鏁版嵁鐨� id
+
+//         for (const detail of this.detailList) {
+//           if (detail.totalCost === targetTotalCost) {
+//             targetId = detail.id;
+//             console.log(targetId);
+//             break;
+//           }
+//         }
+//         const detailList2 = [...this.detailList].filter((detail) => {
+//         return detail.id !== targetId;
+//          });
+//         console.log(detailList2);
+//         const id2 = this.$route.params && this.$route.params.id;
+//         console.log(id2);
+//         detailList2.id = id2
+//         console.log(typeof detailList2);
+//         debugger
+//         updateTravelPrice(detailList2).then(response => {
+//             this.open = false;
+//           });
+//   });
+// });
+//       this.$modal.confirm('鏄惁纭鍒犻櫎鎵�閫夋暟鎹」锛�').then(function() {
+//         return delTravelBase(Ids);
+
+//       }).then(() => {
+//         this.getList(fid);
+//         this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+//       }).catch(() => {});
+//     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       const Ids = this.ids;
diff --git a/ruoyi-ui/src/views/travel/index.vue b/ruoyi-ui/src/views/travel/index.vue
index 8dd1d80..ed2e305 100644
--- a/ruoyi-ui/src/views/travel/index.vue
+++ b/ruoyi-ui/src/views/travel/index.vue
@@ -2,7 +2,7 @@
   <div class="app-container" style="opacity: 1;">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
       <h1 style="font-size:21px">瀹岀編鏃呴��</h1>
-      <el-form-item label="鏃堕棿" prop="startTime">
+      <el-form-item label="鏃堕棿" prop="startTime" >
         <el-date-picker
           v-model="dateRange"
           style="width: 240px;"
@@ -91,10 +91,7 @@
     <!-- 杩欓噷鏈変釜familyList鏁扮粍 鏄湪data()涓畾涔夌殑 -->
     <el-table v-loading="loading" :data="travelpriceList"  @selection-change="handleSelectionChange" @row-click="handleShow" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
       <el-table-column type="selection" width="55"  align="center" />
-      <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="40"/>
-      <el-table-column label="鏃呮父鍚嶇О" prop="tableName" sortable width="100" />
-      <el-table-column label="鏍囬" prop="title" sortable width="100" />
-      <el-table-column label="鍘诲悜" prop="destination" sortable width="50" />
+      <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60px"/>
       <el-table-column label="璧�" prop="startTime" sortable width="100" align="center">
         <template slot-scope="scope">{{scope.row.startTime? scope.row.startTime: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
@@ -102,7 +99,9 @@
         <template slot-scope="scope">{{scope.row.endTime? scope.row.endTime: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
       <el-table-column label="鎬诲ぉ鏁�" prop="totalDay" sortable width="100" />
-
+      <el-table-column label="鏃呮父鍚嶇О" prop="tableName" sortable width="100" />
+      <el-table-column label="鏍囬" prop="title" sortable width="130px" />
+      <el-table-column label="鍘诲悜" prop="destination" sortable width="80px" />
       <el-table-column label="鏃呮父鎬ц川" prop="property" sortable width="100" />
       <el-table-column label="鏃呮父鏂瑰紡" prop="type" sortable width="100" />
       <el-table-column label="鎬婚噾棰�" prop="totalCost" sortable width="100" />
@@ -115,14 +114,14 @@
 
       <el-table-column label="鎿嶄綔" align="center" sortable width="200" >
         <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']"
+            v-hasPermi="['person:travel:edit']"
           >淇敼</el-button>
+
           <el-button
             size="mini"
             type="text"
@@ -133,41 +132,55 @@
           <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:economy:info']">
             <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
           </el-dropdown>
-          <el-button class="button" size="mini" type="text"  @click="handleShow"  v-hasPermi="['system:role:add']">
-            <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn> </el-button>
+          <!-- <el-button class="button" size="mini" type="text"  @click="handleShow"  v-hasPermi="['system:role:add']">
+            <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn> </el-button> -->
         </template>
       </el-table-column>
     </el-table>
+    <div style="background-color: #FEF7FC;">
+      <el-dialog :title="title" :visible.sync="openDataScope" width="1300px" append-to-body >
+        <div style="background-color: #FEF7FC;">
+          <el-table v-loading="loading" :data="detailList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName"  >
+            <el-table-column type="selection" width="50"  align="center" />
+            <el-table-column  label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80px"/>
+            <el-table-column label="鏃堕棿" prop="happenTime" sortable width="150" align="center">
+              <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '鈥斺�斺�斺��'}}</template>
+            </el-table-column>
+            <el-table-column label="鍐呭" prop="content" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="鎬婚噾棰�" prop="totalCost" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="椁愯垂" prop="eat" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="浣忓" prop="stay" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="浜ら��" prop="traffic" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="闂ㄧエ" prop="entrance" sortable :show-overflow-tooltip="true" width="100px" />
+            <el-table-column label="璐墿" prop="shopping" sortable :show-overflow-tooltip="true" width="100px" />
 
-    <el-dialog :title="title" :visible.sync="openDataScope" width="1500px" append-to-body >
-      <div style="background-color: #FEF7FC;">
-        <el-table v-loading="loading" :data="detailList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName"  >
-          <el-table-column type="selection" width="50"  align="center" />
-          <el-table-column  label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="150"/>
-          <el-table-column label="鏃堕棿" prop="happenTime" sortable width="150" align="center">
-            <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '鈥斺�斺�斺��'}}</template>
-          </el-table-column>
-          <el-table-column label="鍐呭" prop="content" sortable :show-overflow-tooltip="true" width="160" />
-          <el-table-column label="鎬婚噾棰�" prop="totalCost" sortable :show-overflow-tooltip="true" width="160" />
-          <el-table-column label="椁愯垂" prop="eat" sortable :show-overflow-tooltip="true" width="160" />
-          <el-table-column label="浣忓" prop="stay" sortable :show-overflow-tooltip="true" width="160" />
-          <el-table-column label="浜ら��" prop="traffic" sortable :show-overflow-tooltip="true" width="150" />
-          <el-table-column label="闂ㄧエ" prop="entrance" sortable :show-overflow-tooltip="true" width="150" />
-          <el-table-column label="璐墿" prop="shopping" sortable :show-overflow-tooltip="true" width="150" />
+            <el-table-column label="鎿嶄綔" align="center" sortable class-name="small-padding fixed-width">
+              <template slot-scope="scope" v-if="scope.row.roleId !== 1">
 
-        </el-table>
-        <pagination
-          v-show="total>0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-          style="background: #FEF7FC;"
-        />
-      </div>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdate1(scope.row)"
+                  v-hasPermi="['familymodel:economy:info']"
+                >淇敼</el-button>
 
-    </el-dialog>
+              </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;"
+          />
+        </div>
+
+      </el-dialog>
+    </div>
     <pagination
       v-show="total>0"
       :total="total"
@@ -181,98 +194,40 @@
 
     <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="type">
-          <el-input v-model="formDat.type" placeholder="璇疯緭鍏ュ唴瀹�" clearable :style="{width: '100%'}" ></el-input>
-        </el-form-item>
 
-        <el-form-item label="鏃堕棿" prop="happenTime">
-          <el-input
-            v-model='formDat.happenTime'
-            type='date'
-            placeholder='閫夋嫨鏃ユ湡'
-          ></el-input>
+        <el-form-item label="鏍囬" prop="title">
+          <el-input v-model="formDat.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '80%'}" >
+          </el-input>
         </el-form-item>
-        <el-form-item label="鏀跺叆/鏀嚭" prop="price">
-          <el-select v-model="formDat.price" placeholder="璇烽�夋嫨鏀跺叆/鏀嚭" clearable :style="{width: '100%'}"  >
-            <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
-            ></el-option>
+        <el-form-item label="璧峰鏃堕棿" prop="startTime">
+          <el-input type="date" v-model="formDat.startTime" placeholder="璇烽�夋嫨璧峰鏃堕棿" style="width: 80%;"></el-input>
+        </el-form-item>
+        <el-form-item label="缁撴潫鏃堕棿" prop="endTime">
+          <el-input type="date" v-model="formDat.endTime" placeholder="璇烽�夋嫨缁撴潫鏃堕棿" style="width: 80%;"></el-input>
+        </el-form-item>
+        <el-form-item label="鍘诲悜" prop="destination">
+          <el-select v-model="formDat.destination" placeholder="璇烽�夋嫨鍘诲悜" clearable :style="{width: '80%'}" >
+            <el-option label="鍥藉唴" value="鍥藉唴"></el-option>
+            <el-option label="鍥藉" value="鍥藉"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="閲戦" prop="balance">
-          <el-input v-model="formDat.balance" placeholder="璇疯緭鍏ヤ綑棰�" clearable :style="{width: '100%'}" >
+        <el-form-item label="鏃呮父鍚嶇О" prop="tableName">
+          <el-input v-model="formDat.tableName" placeholder="璇疯緭鍏ユ梾娓稿悕绉�" clearable :style="{width: '80%'}" >
           </el-input>
         </el-form-item>
-        <el-form-item label="鐢ㄩ��" prop="useFor">
-          <el-input v-model="formDat.useFor" placeholder="璇疯緭鍏ョ敤閫�" clearable :style="{width: '100%'}" >
-          </el-input>
+        <el-form-item label="鏃呮父鎬ц川" prop="property">
+          <el-select v-model="formDat.property" placeholder="璇烽�夋嫨鎬ц川" clearable :style="{width: '80%'}" >
+            <el-option label="鑷垂" value="鑷垂"></el-option>
+            <el-option label="鍏垂" value="鍏垂"></el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="浣跨敤浜�" prop="usePeople">
-          <el-input v-model="formDat.usePeople" placeholder="璇疯緭鍏ヤ娇鐢ㄤ汉" clearable :style="{width: '100%'}" >
-          </el-input>
+        <el-form-item label="鏃呮父鏂瑰紡" prop="type">
+          <el-select v-model="formDat.type" placeholder="璇烽�夋嫨鏃呮父鏂瑰紡" clearable :style="{width: '80%'}" >
+            <el-option label="鑷┚娓�" value="鑷┚娓�"></el-option>
+            <el-option label="璺熷洟娓�" value="璺熷洟娓�"></el-option>
+            <el-option label="鑷姪娓�" value="鑷姪娓�"></el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="鏀粯鏂瑰紡" prop="kind">
-          <el-input v-model="formDat.kind" placeholder="璇疯緭鍏ユ敮浠樻柟寮�" clearable :style="{width: '100%'}" >
-          </el-input>
-        </el-form-item>
-        <el-form-item label="澶囨敞" prop="remark">
-          <el-input v-model="formDat.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input>
-        </el-form-item>
-
-        <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
-        <el-upload
-          action="#"
-          list-type="picture-card"
-          multiple
-          :http-request="requestUpload"
-          :file-list="fileList"
-        >
-          <i slot="default" class="el-icon-plus"></i>
-          <div slot="file" slot-scope="{file}">
-            <img
-              class="el-upload-list__item-thumbnail"
-              :src="file.url"
-              alt=""
-              style="width: 126px; height: 126px"
-              fit="cover"
-              :preview-src-list="[file.url]"
-            >
-            <span class="el-upload-list__item-actions">
-          <span
-            class="el-upload-list__item-preview"
-            @click="handlePictureCardPreview(file)"
-          >
-            <i class="el-icon-zoom-in"></i>
-          </span>
-
-          <span
-            v-if="!disabled"
-            class="el-upload-list__item-delete"
-            @click="handleRemove(file)"
-          >
-            <i class="el-icon-delete"></i>
-          </span>
-        </span>
-
-
-          </div>
-        </el-upload>
-        <h4 class="form-header">鍏朵粬闄勪欢 </h4>
-        <el-upload
-          action=""
-          :file-list="fileListOther"
-          class="upload-demo"
-          multiple
-
-          :on-remove="handleRemove"
-          :http-request="requestUpload"
-          :show-file-list="true"
-        >
-          <el-button type="primary">涓婁紶</el-button>
-          <template #tip>
-            <div class="el-upload__tip">
-            </div>
-          </template>
-        </el-upload>
 
       </el-form>
       <h4 class="form-header"> </h4>
@@ -341,12 +296,12 @@
       btn:false,
       formDat: {
         type: undefined,
-        createTime: undefined,
-        useFor: undefined,
-        usePeople: undefined,
-        kind:undefined,
-        remark: undefined,
-        url: undefined,
+        startTime: undefined,
+        title: undefined,
+        endTime: undefined,
+        property:undefined,
+        tableName: undefined,
+        destination: undefined,
         detailList:undefined,
       },
       // 鑿滃崟鍒楄〃
@@ -371,40 +326,39 @@
       },
       // 琛ㄥ崟鏍¢獙
       rules: {
-        usePeople: [{
-          required: true,
-          message: '璇疯緭鍏ヤ娇鐢ㄤ汉',
-          trigger: 'blur'
-        }],
-
-        useFor: [{
-          required: true,
-          message: '璇疯緭鍏ョ敤閫�',
-          trigger: 'blur'
-        }],
         type: [{
           required: true,
-          message: '璇疯緭鍏ュ彴璐﹀唴瀹�',
+          message: '璇疯緭鍏ユ梾娓告柟寮�',
           trigger: 'blur'
         }],
-        balance: [{
+        property: [{
           required: true,
-          message: '璇疯緭鍏ラ噾棰�',
-          trigger: 'blur'
-        }],
-        kind: [{
-          // required: true,
-          message: '璇疯緭鍏ユ敮浠樻柟寮�',
-          trigger: 'blur'
-        }],
-        createTime: [{
-          required: true,
-          message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
+          message: '璇疯緭鍏ユ梾娓告�ц川',
           trigger: 'change'
         }],
-        price: [{
+        destination: [{
           required: true,
-          message: '璇烽�夋嫨浜嬮」鍐呭',
+          message: '璇烽�夋嫨鍘诲悜',
+          trigger: 'change'
+        }],
+        tableName: [{
+          required: true,
+          message: '璇疯緭鍏ユ梾娓稿悕绉�',
+          trigger: 'blur'
+        }],
+        startTime: [{
+          required: true,
+          message: '璇烽�夋嫨鏃ユ湡',
+          trigger: 'change'
+        }],
+        endTime: [{
+          required: true,
+          message: '璇烽�夋嫨鏃ユ湡',
+          trigger: 'change'
+        }],
+        title: [{
+          required: true,
+          message: '璇烽�夋嫨鏍囬',
           trigger: 'blur'
         }],
       },
@@ -434,23 +388,6 @@
 
   },
   methods: {
-
-    //鍩洪噾/鍙拌处鐨勯�夋嫨
-    getSrc1(type) {
-      if (type === 0) {
-        return '鍩洪噾'
-      }else {
-        return '鍙拌处'
-      }
-    },
-
-    getSrc2(kind) {
-      if (kind == 0) {
-        return '鐜伴噾'
-      }else  {
-        return '鑷姩鎵e垝'
-      }
-    },
 
     // 鍙栨秷鎸夐挳
     cancelData() {
@@ -556,7 +493,7 @@
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "娣诲姞瀹跺涵鏀舵敮鍙拌处";
+      this.title = "娣诲姞鏃呮父鍐呭";
     },
 
     //  寮圭獥
@@ -567,7 +504,7 @@
       //alert(123)
       this.detailList = row.detailList
       // alert(row.index)
-      this.title = "灞曠ず璇︽儏";
+      this.title = "姣忔棩璐圭敤璇︽儏";
 
     },
 
@@ -580,16 +517,11 @@
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      const id = row.id;
-      // let jd = true
 
-      // this.$router.push({
-      //   path:"/self/travel/edit/" + id,
-      //   query:{
-      //     detail:jd
-      //   }
-      // });
+      const id = row.id;
+      console.log(id);
       this.$router.push("/self/travel/edit/" + id);
+
     },
 
 
@@ -600,18 +532,15 @@
     /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
     submitDataScope: function() {
 
-      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.url = ul+","+uls
+
+      this.formDat.detailList = [];
       this.$refs["elForm"].validate(valid => {
         if (valid) {
 
-          addEconomy(this.formDat).then(response => {
+          addTravelPrice(this.formDat).then(response => {
             this.$modal.msgSuccess("鏂板鎴愬姛");
+            console.log("okk");
+            console.log(this.formDat);
             this.open = false;
             this.getList();
           });
diff --git a/ruoyi-ui/src/views/travel/travelInfo.vue b/ruoyi-ui/src/views/travel/travelInfo.vue
index b5e6904..2b38dcd 100644
--- a/ruoyi-ui/src/views/travel/travelInfo.vue
+++ b/ruoyi-ui/src/views/travel/travelInfo.vue
@@ -4,61 +4,71 @@
       <h4 class="dt h4">鏃呮父缁忓巻璇︾粏淇℃伅 </h4>
 
     </div>
+    <div >
+      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" style="width: 60%;">
+        <el-form-item label="鍙戠敓鏃堕棿" prop="happenTime">
+          <el-input v-model="formData.happenTime" placeholder="璇疯緭鍏ュ彂鐢熸椂闂�" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鍦扮偣" prop="address">
+          <el-input v-model="formData.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="浜虹墿" prop="people">
+          <el-input v-model="formData.people" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鏍囬" prop="title">
+          <el-input v-model="formData.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+        <el-form-item label="鏃呮湡" prop="travelPeriod">
+          <el-input v-model="formData.travelPeriod" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+        <el-form-item label="鎸佽瘉鏃呮父" prop="certificate">
+          <el-select v-model="formData.certificate" placeholder="璇烽�夋嫨璇佷欢" clearable :style="{width: '100%'}"  :disabled="dsb">
+            <el-option label="灞呮皯韬唤璇�" value="灞呮皯韬唤璇�"></el-option>
+            <el-option label="涓存椂韬唤璇�" value="涓存椂韬唤璇�"></el-option>
+            <el-option label="鎴峰彛鏈�" value="鎴峰彛鏈�"></el-option>
+            <el-option label="鎶ょ収" value="鎶ょ収"></el-option>
+            <el-option label="瀛︾敓璇�" value="瀛︾敓璇�"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="璐圭敤" prop="totalPrice">
+          <el-input v-model="formData.totalPrice" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="true"></el-input>
+        </el-form-item>
 
-    <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
-      <el-form-item label="鍙戠敓鏃堕棿" prop="happenTime">
-        <el-input v-model="formData.happenTime" placeholder="璇疯緭鍏ュ彂鐢熸椂闂�" clearable :style="{width: '100%'}" :disabled="dsb">
-        </el-input>
-      </el-form-item>
-      <el-form-item label="鍦扮偣" prop="address">
-        <el-input v-model="formData.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" :disabled="dsb">
-        </el-input>
-      </el-form-item>
-      <el-form-item label="浜虹墿" prop="people">
-        <el-input v-model="formData.people" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" :disabled="dsb">
-        </el-input>
-      </el-form-item>
-      <el-form-item label="鏍囬" prop="title">
-        <el-input v-model="formData.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
-      </el-form-item>
-      <el-form-item label="鏃呮湡" prop="travelPeriod">
-        <el-input v-model="formData.travelPeriod" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
-      </el-form-item>
-      <el-form-item label="鎸佽瘉鏃呮父" prop="certificate">
-        <el-input v-model="formData.certificate" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
-      </el-form-item>
-      <el-form-item label="璐圭敤" prop="totalPrice">
-        <el-input v-model="formData.totalPrice" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
-      </el-form-item>
+        <el-form-item label="鏄惁鍏垂鏃呮父" prop="self">
+          <el-select v-model="formData.self" placeholder="璇烽�夋嫨鏄惁" clearable :style="{width: '100%'}"  :disabled="dsb">
+            <el-option label="鏄�" value="1"></el-option>
+            <el-option label="鍚�" value="0"></el-option>
+          </el-select>
+        </el-form-item>
 
-      <el-form-item label="鏄惁鍏垂鏃呮父" prop="self">
-        <el-select v-model="formData.self=== 1 ? '鑷垂':'鍏垂'" placeholder="璇烽�夋嫨淇濇磥/鏀剁撼" clearable :style="{width: '100%'}" :disabled="dsb" ></el-select>
-      </el-form-item>
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
 
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
-      </el-form-item>
 
-      <h4 class="form-header">鐢靛瓙鏂囦欢 </h4>
-      <el-upload
-        action="#"
-        list-type="picture-card"
-        multiple
-        :http-request="requestUpload"
-        :file-list="fileList"
-      >
-        <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
-        <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
-        <div slot="file" slot-scope="{file}">
-          <img
-            class="el-upload-list__item-thumbnail"
-            :src="file.url"
-            alt=""
-            style="width: 147px; height: 147px"
-            fit="cover"
-            :preview-src-list="[file.url]"
-          >
-          <span class="el-upload-list__item-actions">
+        <h4 class="form-header">鐢靛瓙鏂囦欢 </h4>
+        <el-upload
+          action="#"
+          list-type="picture-card"
+          multiple
+          :http-request="requestUpload"
+          :file-list="fileList"
+        >
+          <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
+          <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
+          <div slot="file" slot-scope="{file}">
+            <img
+              class="el-upload-list__item-thumbnail"
+              :src="file.url"
+              alt=""
+              style="width: 147px; height: 147px"
+              fit="cover"
+              :preview-src-list="[file.url]"
+            >
+            <span class="el-upload-list__item-actions">
           <span
 
             class="el-upload-list__item-preview"
@@ -83,32 +93,32 @@
         </span>
 
 
-        </div>
-      </el-upload>
+          </div>
+        </el-upload>
 
-      <h4 class="form-header">鍏朵粬闄勪欢 </h4>
-      <el-upload
-        action=""
-        :file-list="fileListOther"
-        class="upload-demo"
-        multiple
-        list-type="picture-card"
-        :on-preview="handleFileCardPreview"
-        :on-remove="handleRemoveFile"
-        :http-request="requestUpload"
-        :show-file-list="true"
-      >
-        <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
-        <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
-        <div slot="file" slot-scope="{file}">
-          <img
-            class="el-upload-list__item-thumbnail"
-            src="../../assets/401_images/401.gif"
-            alt=""
-            style="width: 147px; height: 147px"
-            fit="cover"
-          >
-          <span class="el-upload-list__item-actions">
+        <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+        <el-upload
+          action=""
+          :file-list="fileListOther"
+          class="upload-demo"
+          multiple
+          list-type="picture-card"
+          :on-preview="handleFileCardPreview"
+          :on-remove="handleRemoveFile"
+          :http-request="requestUpload"
+          :show-file-list="true"
+        >
+          <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
+          <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
+          <div slot="file" slot-scope="{file}">
+            <img
+              class="el-upload-list__item-thumbnail"
+              src="../../assets/401_images/401.gif"
+              alt=""
+              style="width: 147px; height: 147px"
+              fit="cover"
+            >
+            <span class="el-upload-list__item-actions">
                   <span
 
                     class="el-upload-list__item-preview"
@@ -133,16 +143,16 @@
                 </span>
 
 
-        </div>
+          </div>
 
 
-      </el-upload>
+        </el-upload>
 
-      <el-form-item size="large">
-        <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
-      </el-form-item>
-    </el-form>
-
+        <el-form-item size="large">
+          <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
     <el-dialog  :visible.sync="dialogVisible">
       <img w-full :src="dialogImageUrl"    style="width: 700px; height: 700px" alt="Preview Image" />
     </el-dialog>
@@ -261,8 +271,6 @@
         }
         this.loading = false;
       });
-      this.getCateInfor()
-
     }
   },
   mounted() {},
@@ -283,6 +291,7 @@
         if (valid) {
           if (this.formData.id != undefined) {
             updateTravelBase(this.formData).then(response => {
+              console.log(this.formData);
               this.$modal.msgSuccess("淇敼鎴愬姛");
               // this.open = false;
               this.btn=false

--
Gitblit v1.9.1