| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="form-header mt"> |
| | | <h4 class="dt h4">旅游记录 </h4> |
| | | |
| | | </div> |
| | | |
| | | <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> |
| | | |
| | | <el-form-item label="开始时间" prop="startTime"> |
| | | <el-date-picker v-model="formData.startTime" type="date" placeholder="请选择日期" |
| | | :editable="false" :clearable="false" :style="{width: '100%'}" :disabled="dsb" value-format="yyyy-MM-dd" |
| | | ></el-date-picker></el-form-item> |
| | | |
| | | <el-form-item label="结束时间" prop="endTime"> |
| | | <el-date-picker v-model="formData.endTime" type="date" placeholder="请选择日期" |
| | | :editable="false" :clearable="false" :style="{width: '100%'}" :disabled="dsb" value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="旅游名称" prop="name"> |
| | | <el-input v-model="formData.name" placeholder="请输入人物" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="旅游去向" prop="destination"> |
| | | <el-input v-model="formData.destination" placeholder="请输入旅游去向" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="旅游性质" prop="property"> |
| | | <el-input v-model="formData.property" placeholder="请输入旅游性质" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="旅游方式" prop="manner"> |
| | | <el-input v-model="formData.manner" placeholder="请输入旅游方式" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="团费" prop="groupTotal"> |
| | | <el-input v-model="formData.groupTotal" placeholder="请输入团费" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | <el-form-item size="large"> |
| | | <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">修改</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-dialog :visible.sync="dialogVisible"> |
| | | <img w-full :src="dialogImageUrl" style="width: 700px; height: 700px" alt="Preview Image" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {addRole, updateRole} from "@/api/system/role"; |
| | | import {blobValidate} from "@/utils/ruoyi"; |
| | | import errorCode from "@/utils/errorCode"; |
| | | import {Message} from "element-ui"; |
| | | import { getTravelPriceInfo,updateTravelPrice, uploadPic, download} from "@/api/travel/index"; |
| | | |
| | | export default { |
| | | components: {}, |
| | | props: [], |
| | | data() { |
| | | return { |
| | | cdi:"旅游费用信息", |
| | | udi:"旅游费用修改", |
| | | // 数据范围选项 |
| | | fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx', |
| | | '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'], |
| | | |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | isShow:true, |
| | | |
| | | formData: { |
| | | id: undefined, |
| | | name: undefined, |
| | | startTime:undefined, |
| | | endTime:undefined, |
| | | destination: undefined, |
| | | property: undefined, |
| | | manner: undefined, |
| | | groupTotal: undefined, |
| | | |
| | | }, |
| | | dialogImageUrl: '', |
| | | dialogVisible: false, |
| | | disabled: false, |
| | | rules: { |
| | | name: [{ |
| | | required: true, |
| | | message: '请输入旅游名称', |
| | | trigger: 'blur' |
| | | }], |
| | | destination: [{ |
| | | required: true, |
| | | message: '请输入去向', |
| | | trigger: 'blur' |
| | | }], |
| | | property: [{ |
| | | required: true, |
| | | message: '请输入旅游性质', |
| | | trigger: 'blur' |
| | | }], |
| | | manner: [{ |
| | | required: true, |
| | | message: '请输入旅游方式', |
| | | trigger: 'blur' |
| | | }], |
| | | groupTotal: [{ |
| | | |
| | | required: true, |
| | | message: '请输入团费', |
| | | trigger: 'blur' |
| | | }], |
| | | startTime: [{ |
| | | required: true, |
| | | message: '请选择时间', |
| | | trigger: 'change' |
| | | }], |
| | | endTime: [{ |
| | | required: true, |
| | | message: '请选择时间', |
| | | trigger: 'change' |
| | | }], |
| | | |
| | | |
| | | }, |
| | | typeOptions: [], |
| | | } |
| | | }, |
| | | computed: {}, |
| | | watch: {}, |
| | | created() { |
| | | const id = this.$route.params && this.$route.params.id; |
| | | let jd; |
| | | if(this.$route.query.detail!=undefined) |
| | | { |
| | | jd = this.$route.query.detail |
| | | this.btn= jd |
| | | this.dsb = !jd |
| | | this.isShow=true |
| | | document.title = "修改旅行费用详细信息"; |
| | | this.$route.meta.title = "修改旅行费用详细信息";//列表的名称 |
| | | } |
| | | |
| | | let _this = this |
| | | if (id) { |
| | | this.loading = true; |
| | | getTravelPriceInfo(id).then((response) => { |
| | | this.formData = response.data; |
| | | let paths = response.data.url.split(","); |
| | | for(let i = 0; i < paths.length; i++) |
| | | { |
| | | if(paths[i]!="") { |
| | | |
| | | let pth = paths[i].substr(paths[i].length - 4, paths[i].length) |
| | | |
| | | if (_this.fot.includes(pth) === true) |
| | | _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | else { |
| | | // alert(paths[i]) |
| | | let nms = paths[i].split("\/") |
| | | let nm = nms[nms.length - 1] |
| | | _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | } |
| | | } |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | |
| | | |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | |
| | | submitForm() { |
| | | |
| | | this.$refs['elForm'].validate(valid => { |
| | | |
| | | |
| | | if (valid) { |
| | | if (this.formData.id != undefined) { |
| | | updateTravelPrice(this.formData).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | // this.open = false; |
| | | this.btn=false |
| | | }); |
| | | } else { |
| | | this.$modal.msgSuccess("修改失败"); |
| | | |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | resetForm() { |
| | | this.$refs['elForm'].resetFields() |
| | | }, |
| | | handlePreview(file) |
| | | { |
| | | let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleRemoveFile(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileList.length; i++) |
| | | { |
| | | if(this.fileList[i].url==file.url) |
| | | this.$delete(this.fileList,i); |
| | | } |
| | | }, |
| | | handleFileCardPreview(file){ |
| | | this.dialogFileUrl = file.url; |
| | | const Base64 = require('js-base64').Base64 |
| | | this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl)); |
| | | myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300'); |
| | | }, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | handleDownload(url) { |
| | | var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleEdit() |
| | | { |
| | | this.dsb = false |
| | | // this.btn = true |
| | | this.isShow=false |
| | | }, |
| | | 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}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('/zfEvent/export', { |
| | | ...this.queryParams |
| | | }, `zfEvent_${new Date().getTime()}.xlsx`) |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .app-container{ |
| | | background-color: #FEF7FC; |
| | | } |
| | | .mt |
| | | { |
| | | position: relative; |
| | | } |
| | | .dt{ |
| | | display: block; |
| | | |
| | | } |
| | | .pt{ |
| | | right: 10px; |
| | | top:-3px; |
| | | display: block; |
| | | position: absolute; |
| | | } |
| | | </style> |