| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="app-container" id="printable-content"> |
| | | <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" v-print="'#printable-content'" v-hasPermi="['person:information:memo']"> |
| | | <div class="form" ><el-icon style="padding-right:100px;"></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> |
| | | <div > |
| | | <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" style="width: 60%;"> |
| | | <el-form-item label="发生时间" prop="happenDate"> |
| | | <el-date-picker v-model="formData.happenDate" 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="address"> |
| | | <el-input v-model="formData.address" placeholder="请输入地点" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="建筑" prop="scenic"> |
| | | <el-input v-model="formData.scenic" placeholder="请输入建筑" clearable :style="{width: '100%'}" :disabled="dsb"></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-form-item label="门票" prop="entrance"> |
| | | <el-input v-model="formData.entrance" placeholder="请输入门票" type="number" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="住宿酒店" prop="hotel"> |
| | | <el-input v-model="formData.hotel" placeholder="请输入住宿酒店" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="住宿费用" prop="stay"> |
| | | <el-input v-model="formData.stay" placeholder="请输入地点" type="number" 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-form-item label="餐费" prop="eat"> |
| | | <el-input v-model="formData.eat" placeholder="请输入地点" type="number" 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="travel"> |
| | | <el-input v-model="formData.travel" placeholder="请输入交通费" type="number" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出行方式" prop="travelMode"> |
| | | <el-input v-model="formData.travelMode" placeholder="请输入地点" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车次/航班" prop="flight"> |
| | | <el-input v-model="formData.flight" placeholder="请输入地点" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="持证旅游" prop="document"> |
| | | <el-select v-model="formData.document" 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="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" |
| | | :disabled="!btn" |
| | | :class="{ hide: !btn }" |
| | | > |
| | | <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" |
| | |
| | | </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"> |
| | | <span |
| | | <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" |
| | | :disabled="!btn" |
| | | :class="{ hide: !btn }" |
| | | > |
| | | <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}"> |
| | | <!-- 添加video元素用于显示视频 --> |
| | | <video |
| | | v-if="file.url.includes('.mp4')" |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | style="width: 147px; height: 147px" |
| | | fit="cover" |
| | | ></video> |
| | | <img v-else |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/401_images/401.gif" |
| | | alt="" |
| | | style="width: 100%; height: 100%" |
| | | fit="cover"> |
| | | |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFileCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | <span class="el-upload-list__item-actions"> |
| | | <span class="el-upload-list__item-name">{{ file.name }}</span> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFileCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | |
| | | class="el-upload-list__item-delete" |
| | | @click="handleDownload(file.url)" |
| | | > |
| | | class="el-upload-list__item-delete" |
| | | @click="handleDownload(file.url)" |
| | | > |
| | | <i class="el-icon-download"></i> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemoveFile(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemoveFile(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </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" /> |
| | | <img w-full :src="dialogImageUrl" style="width: 100%; height: 100%" alt="Preview Image" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | |
| | | formData: { |
| | | id: undefined, |
| | | title: undefined, |
| | | happenDate:undefined, |
| | | entrance:undefined, |
| | | hotel: undefined, |
| | | people: undefined, |
| | | address: undefined, |
| | | remark: undefined, |
| | | travelMode:undefined, |
| | | stay:undefined, |
| | | flight:undefined, |
| | | document:undefined, |
| | | url: undefined, |
| | | }, |
| | | dialogImageUrl: '', |
| | | dialogVisible: false, |
| | | disabled: false, |
| | | rules: { |
| | | title: [{ |
| | | required: true, |
| | | message: '请输入大事标题', |
| | | flight: [{ |
| | | // required: true, |
| | | message: '请输入车次/航班', |
| | | trigger: 'blur' |
| | | }], |
| | | familyId: [{ |
| | |
| | | document.title = "旅游经历详细信息"; |
| | | this.$route.meta.title = "旅游经历详细信息";//列表的名称 |
| | | this.isShow=true |
| | | this.btn = false; |
| | | } |
| | | |
| | | let _this = this |
| | |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | this.getCateInfor() |
| | | |
| | | } |
| | | }, |
| | | mounted() {}, |
| | |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formData.id = this.$route.params && this.$route.params.id; |
| | | this.formData.url = ul+","+uls |
| | | |
| | | console.log(this.formData) |
| | | this.$refs['elForm'].validate(valid => { |
| | | |
| | | |
| | | 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 |
| | |
| | | }, |
| | | handleFileCardPreview(file){ |
| | | this.dialogFileUrl = file.url; |
| | | // alert(file.url) |
| | | // this.dialogFileUrl = 'https://www.bendudu.com:8080/profile/upload/2023/10/18/20231018214647A011.doc' |
| | | // this.dialogFileUrl = 'https://47.93.189.255:8080/profile/upload/2023/03/19/test7_20230319222030A007.jpg' |
| | | if(this.dialogFileUrl.includes("47.93.189.255")==true) |
| | | this.dialogFileUrl = this.dialogFileUrl.replace("47.93.189.255","www.bendudu.com") |
| | | //alert(this.dialogFileUrl) |
| | | 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'); |
| | | |
| | | this.desurl = process.env.VUE_APP_BASE_OTHER_API+"preview/"+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl)); |
| | | let myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300'); |
| | | }, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | |
| | | handleEdit() |
| | | { |
| | | this.dsb = false |
| | | // this.btn = true |
| | | this.btn = true |
| | | this.isShow=false |
| | | }, |
| | | requestUpload(params) |
| | |
| | | display: block; |
| | | position: absolute; |
| | | } |
| | | .hide .el-upload--picture-card { |
| | | display: none; |
| | | } |
| | | .form{ |
| | | background:center/11% no-repeat url('../../assets/icons/form.png') ; |
| | | } |
| | | </style> |