ruoyi-ui/src/api/travel/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/router/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/views/travel/Info.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/views/travel/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/views/travel/travelInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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' }) } 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' }) } 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'} 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 @@ //在system/note/index.js中导入接口函数 --接好了 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; 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 '自动扣划' } }, // 取消按钮 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(); }); 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">正在上传...</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">正在上传...</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">正在上传...</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">正在上传...</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