1 files renamed
11 files modified
| | |
| | | data |
| | | }) |
| | | } |
| | | // 订单详情 |
| | | export function orderDtl(data) { |
| | | return request({ |
| | | url: '/qyp/order/orderDtl', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // 订单详情 |
| | | export function orderInit(data) { |
| | | return request({ |
| | | url: '/qyp/order/orderInit', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | data, |
| | | }); |
| | | }, |
| | | orderList(data) { |
| | | return request({ |
| | | url: "/qyp/order/orderList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | }; |
| | | export default accountApi; |
| | |
| | | // ================= |
| | | export function uploadFile(data) { //文件上传公共 |
| | | return request({ |
| | | url: '/pub/uploadFile', |
| | | url: '/pub/upload', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | // 项目文件上传 |
| | | export function projFileUpload(data) { //文件上传公共 |
| | | return request({ |
| | | url: '/qyp/manual/projFileUpload', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
File was renamed from src/components/secect.vue |
| | |
| | | * @LastEditors: zxq |
| | | * @LastEditTime: 2023-01-03 11:08:50 |
| | | * @Description: Description |
| | | * @FilePath: \qyp-plat\src\components\secect.vue |
| | | * @FilePath: \qyp-plat\src\components\fl-select.vue |
| | | --> |
| | | <template> |
| | | <el-select |
| | |
| | | <!-- |
| | | * @Author: zxq |
| | | * @Date: 2021-09-13 17:29:07 |
| | | * @LastEditTime: 2023-04-23 11:27:58 |
| | | * @LastEditors: zxq |
| | | * @LastEditTime: 2023-08-31 17:14:36 |
| | | * @LastEditors: zhaoxiaoqiang 287285524@qq.com |
| | | * @Description: In User Settings Edit |
| | | * @FilePath: \qyp_finlean_plat\src\components\table.vue |
| | | --> |
| | |
| | | @select-all="selectAll" |
| | | @cell-click="cellClick" |
| | | @select="select" |
| | | :row-key="getRowKey" |
| | | > |
| | | <el-table-column |
| | | v-if="hasSelection" |
| | | type="selection" |
| | | :border="border" |
| | | :reserve-selection="true" |
| | | :selectable="selectHandle" |
| | | width="50" |
| | | ></el-table-column> |
| | |
| | | type: Object, |
| | | default: () => { |
| | | return {}; |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | //订单明细 导出路径 |
| | | exportOrderUrl: { |
| | |
| | | type:String, |
| | | default:'items' |
| | | }, |
| | | rowKey:{ |
| | | type:String, |
| | | default:'id' |
| | | } |
| | | }, |
| | | components: { |
| | | expandDom: { |
| | |
| | | }, |
| | | }, |
| | | methods: { |
| | | getRowKey (row) { |
| | | return row[this.rowKey] |
| | | }, |
| | | pageChange(newPage) { |
| | | this.queryData.page = newPage; |
| | | this.getData(); |
| | |
| | | * @Author: zxq |
| | | * @Date: 2022-01-05 18:44:53 |
| | | * @LastEditors: zhaoxiaoqiang 287285524@qq.com |
| | | * @LastEditTime: 2023-08-24 14:39:04 |
| | | * @LastEditTime: 2023-08-31 14:56:53 |
| | | * @Description: Description |
| | | * @FilePath: \qyp_finlean_plat\src\components\upload.vue |
| | | * @FilePath: \sjzl-plat\src\components\upload.vue |
| | | --> |
| | | <template> |
| | | <div style="width: 100%"> |
| | | <div> |
| | | <el-upload |
| | | action="#" |
| | | :limit="limit" |
| | | :limit='limit' |
| | | multiple |
| | | class="upload-demo" |
| | | :list-type="!isUploadOther?'picture-card':''" |
| | | :disabled="disabled" |
| | | :disabled='disabled' |
| | | list-type="picture-card" |
| | | :on-exceed="masterFileMax" |
| | | :before-upload="beforeAvatarUpload" |
| | | :http-request="uploadFileData" |
| | | :file-list="PicList" |
| | | :class="[uploadDisabled ? 'updispaly' : '']" |
| | | :file-list="pictureList" |
| | | > |
| | | <el-button v-if="isUploadOther" size="small" icon="el-icon-plus" type="primary" >点击上传</el-button> |
| | | <i v-else slot="default" class="el-icon-plus"></i> |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{ file }"> |
| | | <template v-if="isUploadOther"> |
| | | <div class="pdf_style" v-if='file.url'> |
| | | <template |
| | | v-if=" |
| | | file.url |
| | | .substring(file.url.lastIndexOf('.')) |
| | | .split('.')[1] |
| | | .trim() != 'pdf' |
| | | " |
| | | > |
| | | <div :style="imgStyle" class="img_box"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :style="imgStyle" |
| | | :src="file.url" |
| | | alt="" |
| | | /> |
| | | <div class="el-upload-list__item-actions" :style="imgStyle"> |
| | | <span class="el-upload-list__item-preview"> |
| | | <i |
| | | class="el-icon-zoom-in" |
| | | style="color: #fff; font-size: 20px" |
| | | @click="handlePictureCardPreview(file)" |
| | | ></i> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="color: #fff; font-size: 20px" |
| | | @click="handleRemoveLoanT(file)" |
| | | ></i> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | | <div class="pdf_box"> |
| | | <span>{{ file.fileName }}</span> |
| | | <i |
| | | class="el-icon-delete delete_file" |
| | | style="color: #fff; font-size: 20px" |
| | | @click="handleRemoveLoanT(file)" |
| | | ></i> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | | <!-- <span>{{ file.url }}</span> --> |
| | | <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" /> |
| | | <span class="el-upload-list__item-actions"> |
| | | <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)"> |
| | | <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="handleRemoveLoanT(file)"> |
| | | <span v-if='!disabled' |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemoveLoanT(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | </template> |
| | | </div> |
| | | </el-upload> |
| | | <el-dialog |
| | | title="查看图片" |
| | | :append-to-body="true" |
| | | top="0" |
| | | :visible.sync="imgVisible" |
| | | class="dialogImageUrlbox" |
| | | > |
| | | <img width="100%" :src="dialogImageUrl" alt="" /> |
| | | <el-dialog title="查看图片" top="1vh" :append-to-body='true' :visible.sync="imgVisible" class='dialogImageUrlbox'> |
| | | <img width="80%" :src="dialogImageUrl" alt="" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from "axios"; |
| | | import { uploadFile } from "@/api/user"; |
| | | import { imgShrink } from "@/utils/validate"; |
| | | import {showTipOfStatuCode} from '@/utils/statusCodeManage' |
| | | |
| | | export default { |
| | | props: { |
| | | limit: { |
| | | type: Number | String, |
| | | default: "", |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | default: false |
| | | }, |
| | | defaultList: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | return [] |
| | | } |
| | | }, |
| | | }, |
| | | imgSize: { |
| | | type: Object, |
| | | default: () => { |
| | | return {}; |
| | | }, |
| | | }, |
| | | imgStyle: { |
| | | type: Object, |
| | | default: () => { |
| | | return { |
| | | width: "100px", |
| | | height: "100px", |
| | | }; |
| | | }, |
| | | }, |
| | | isUploadOther: { |
| | | isProject:{ |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | PicList: [], |
| | | pictureList:[], |
| | | imgVisible: false, |
| | | dialogImageUrl: "", |
| | | dialogImageUrl:'', |
| | | uploadFileForm: { |
| | | suffix: "", |
| | | base64Data: "", |
| | | }, |
| | | uploadDisabled: false, |
| | | base64Data:"" |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | defaultList: { |
| | | handler: function (val) { |
| | | this.PicList = val; |
| | | console.log(val) |
| | | this.pictureList = val; |
| | | }, |
| | | deep: true, |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | methods: { |
| | | beforeAvatarUpload(file, type) { |
| | | var testmsg = !/\/(?:jpg|jpeg|png|pdf)/i.test(file.type); |
| | | const isLt5M = file.size / 1024 / 1024 < 100; |
| | | if (testmsg) { |
| | | this.$message.error("请检查文件格式"); |
| | | var testmsg = /^image\/(jpeg|png|jpg)$/.test(file.type); |
| | | const isLt5M = file.size / 1024 / 1024 < 15; |
| | | if (!testmsg) { |
| | | this.$message.error("上传图片格式不对!"); |
| | | return false; |
| | | } |
| | | if (!isLt5M) { |
| | | this.$message.error("上传图片大小不能超过 100MB!"); |
| | | this.$message.error("上传图片大小不能超过 15MB!"); |
| | | return false; |
| | | } |
| | | }, |
| | | uploadFileData(file, type) { |
| | | if(this.isUploadOther){ |
| | | var formData = new FormData(); //新建表单对象 |
| | | formData.append("file", file.file); //把文件对象添加到表单对象里 |
| | | formData.append("filename", file.file.name); //把文件名称添加到表单对象里 |
| | | axios.post("/sfPlat/pub/uploadLargeFile", formData).then(({ data }) => { |
| | | let { fileUrl, fileName, fileId } = data.body; |
| | | this.PicList.push({ |
| | | fileUrl: fileUrl, |
| | | fileName, |
| | | url: fileUrl, |
| | | fileId, |
| | | }); |
| | | this.$emit("sendList", this.PicList); |
| | | }) |
| | | .catch((err) => { |
| | | showTipOfStatuCode(err) |
| | | }); |
| | | }else{ |
| | | //上传图片 |
| | | const fileName = file.file.name; |
| | | this.uploadFileForm.suffix = fileName.substr(fileName.lastIndexOf(".") + 1, fileName.length); |
| | | imgShrink(file.file,this.imgSize.width,this.imgSize.height).then(resBase64 => { |
| | | imgShrink(file.file).then(resBase64 => { |
| | | this.uploadFileForm.base64Data = resBase64.split(",")[1]; |
| | | let apiEvent = {uploadFile}; |
| | | //直接拿到base64信息 |
| | | uploadFile(this.uploadFileForm).then(res => { |
| | | this.PicList.push({ |
| | | apiEvent["uploadFile"](this.uploadFileForm).then(res => { |
| | | this.pictureList.push({ |
| | | filePath: res.body.fileUrl, |
| | | fileName: fileName, |
| | | uid: file.file.uid, |
| | | url: res.body.fileUrl, |
| | | fileId: res.body.fileId |
| | | }); |
| | | this.uploadDisabled = this.PicList.length >= 1 && this.limit==1 |
| | | this.$emit('sendList', this.PicList); |
| | | this.$emit('sendList',this.pictureList); |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.imgVisible = true; |
| | | }, |
| | | handleRemoveLoanT(file) { |
| | | const index = this.PicList.findIndex((item) => { |
| | | return item.fileId == file.fileId; |
| | | const index = this.pictureList.findIndex(item => { |
| | | return item.uid == file.uid; |
| | | }); |
| | | this.PicList.splice(index, 1); |
| | | this.uploadDisabled = this.PicList.length >= 1 && this.limit == 1; |
| | | this.$emit("sendList", this.PicList); |
| | | this.pictureList.splice(index,1); |
| | | this.$emit('sendList',this.pictureList); |
| | | }, |
| | | masterFileMax() { |
| | | this.$message.warning(`最多上传 ${this.limit} 个文件。`); |
| | | this.$message.warning(`请最多上传 ${this.limit} 个文件。`); |
| | | } |
| | | }, |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | if (this.defaultList.length > 0) { |
| | | this.PicList = this.defaultList; |
| | | this.uploadDisabled = this.PicList.length >= 1 && this.limit == 1; |
| | | this.pictureList = this.defaultList; |
| | | this.uploadDisabled = this.pictureList.length >= 1 && this.limit == 1; |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .updispaly { |
| | | .el-upload--picture-card { |
| | | display: none; |
| | | } |
| | | .el-upload { |
| | | width: 100% !important; |
| | | height: 100% !important; |
| | | } |
| | | .uplaod_img > .el-upload--picture-card { |
| | | width: 100% !important; |
| | | height: 100% !important; |
| | | } |
| | | } |
| | | .pdf_style{ |
| | | .img_box { |
| | | position: relative; |
| | | margin-right: 5px; |
| | | margin-bottom: 5px; |
| | | } |
| | | .el-upload-list__item { |
| | | width: inherit !important; |
| | | } |
| | | .el-upload-list__item-actions { |
| | | position: absolute !important; |
| | | top: 0 !important; |
| | | left: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | opacity: 0; |
| | | background: rgba(0, 0, 0, 0.5); |
| | | } |
| | | |
| | | .img_box:hover .el-upload-list__item-actions { |
| | | opacity: 1; |
| | | } |
| | | .el-upload-list { |
| | | display: flex !important; |
| | | justify-content: flex-start !important; |
| | | align-items: center !important; |
| | | flex-wrap: wrap !important; |
| | | } |
| | | .pdf_box { |
| | | padding: 5px 0; |
| | | padding-right: 24px; |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | } |
| | | .delete_file { |
| | | display: inline-block; |
| | | margin-left: 12px; |
| | | opacity: 0; |
| | | } |
| | | .pdf_box:hover .delete_file { |
| | | opacity: 1; |
| | | color: #666 !important; |
| | | } |
| | | <style> |
| | | .el-upload--picture-card , .el-upload-list__item{ |
| | | width: 74px !important; |
| | | height: 74px !important; |
| | | line-height: 76px !important; |
| | | } |
| | | |
| | | </style> |
| | |
| | | // 这个component属性是一个字符串,或者可能连字段名都是其他的key |
| | | // 所以这里要做一些转换 |
| | | // 结构创建 |
| | | let data = arr ? arr : [] |
| | | console.log(data) |
| | | let data = arr ? arr : []; |
| | | for (let i = 0, j = data.length; i < j; i++) { |
| | | if (data[i].childPowerInfos == null || data[i].childPowerInfos.length == 0) { |
| | | data[i].childPowerInfos = [{ |
| | |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item style="text-align: right;"> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" v-if='filterBtnById("150102")' @click="addProduct">新 增</el-button> |
| | | <!-- v-if='filterBtnById("150102")' --> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div style="margin-left: 10px;text-align: right;"> |
| | | <el-button type="primary" size="small" @click="addProduct">新增项目</el-button> |
| | | </div> |
| | | <Etable |
| | | hasIndex |
| | | httpUrl="projectList" |
| | |
| | | @getDataList="getDataList" |
| | | :exportUrl="{ |
| | | url: '/qyp/project/export', |
| | | powerId: '150103', |
| | | powerId: '', |
| | | name: '项目列表', |
| | | }" |
| | | ></Etable> |
| | | </div> |
| | | <el-dialog top="8vh" title="新增商品" :visible.sync="addProd" width="60%"> |
| | | <el-dialog top="2vh" :title="title" :visible.sync="addProd" width="60%"> |
| | | <!-- 新增商品名称 --> |
| | | |
| | | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" size="small" label-width="100px" class="demo-ruleForm"> |
| | | <el-form-item label="项目名称" prop="projName"> |
| | | <el-input v-model="ruleForm.projName" :disabled="disabled" :maxlength="50"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目价格" prop="projPrice"> |
| | | <el-input v-model="ruleForm.projPrice" :disabled="disabled" :maxlength="10"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目链接" prop="projUrl"> |
| | | <el-input v-model="ruleForm.projUrl" :disabled="disabled" :maxlength="150"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目描述" prop="projDesc"> |
| | | <el-input type="textarea" v-model="ruleForm.projDesc" :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目状态" prop="status"> |
| | | <el-radio-group v-model="ruleForm.status" :disabled="disabled"> |
| | | <el-radio v-for="item in relustObj.statusList" :key="item.code" :label="item.code">{{ item.name }}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="项目背景图" v-if="addProd" ref="backFilePath" prop="backFilePath"> |
| | | <uploadImg v-if="addProd" @sendList="imgSet($event,'backFilePath')" :disabled="disabled" :defaultList="ruleForm.backFilePath"></uploadImg> |
| | | </el-form-item> |
| | | <el-form-item label="项目logo" ref="logoFilePath" prop="logoFilePath"> |
| | | <uploadImg v-if="addProd" @sendList="imgSet($event,'logoFilePath')" :disabled="disabled" :defaultList="ruleForm.logoFilePath"></uploadImg> |
| | | </el-form-item> |
| | | <el-form-item label="平台头图" ref="titleFilePath" prop="titleFilePath"> |
| | | <uploadImg v-if="addProd" @sendList="imgSet($event,'titleFilePath')" :disabled="disabled" :defaultList="ruleForm.titleFilePath"></uploadImg> |
| | | </el-form-item> |
| | | <el-form-item label="会员权益" ref="qyFilePath" prop="qyFilePath"> |
| | | <uploadImg v-if="addProd" @sendList="imgSet($event,'qyFilePath')" :disabled="disabled" :defaultList="ruleForm.qyFilePath"></uploadImg> |
| | | </el-form-item> |
| | | <el-form-item label="活动规则" ref="ruleFilePath" prop="ruleFilePath"> |
| | | <uploadImg v-if="addProd" @sendList="imgSet($event,'ruleFilePath')" :disabled="disabled" :defaultList="ruleForm.ruleFilePath"></uploadImg> |
| | | </el-form-item> |
| | | <el-form-item style="text-align:right;" v-if="!disabled"> |
| | | <el-button type="primary" @click="submitForm('ruleForm')">保存</el-button> |
| | | <!-- <el-button @click="resetForm('ruleForm')">重置</el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | </el-dialog> |
| | | </div> |
| | |
| | | <script> |
| | | import Etable from "../../components/table.vue"; |
| | | import {projectInit,projectAdd,projectDtl,projectUpdata} from "@/api/credit"; |
| | | // import orderDetail from "./orderDetail.vue"; |
| | | import uploadImg from "@/components/upload.vue"; |
| | | import MultipleSelect from "../../components/secect.vue"; |
| | | import moment from 'moment'; |
| | | export default { |
| | | name: "order", |
| | | components: { Etable, MultipleSelect, uploadImg }, |
| | | components: { Etable,uploadImg }, |
| | | data() { |
| | | let validateImage = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodListImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品展示图片')); |
| | | let backFilePathImage = (rule, value, callback) => { //验证器 |
| | | if (!this.ruleForm.backFilePath.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传项目背景图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let validateImage1 = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品轮播图')); |
| | | let logoFilePathImage = (rule, value, callback) => { //验证器 |
| | | if (!this.ruleForm.logoFilePath.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传项目logo图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let validateImage2 = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodDescImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品详情图片')); |
| | | let titleFilePathImage = (rule, value, callback) => { //验证器 |
| | | if (!this.ruleForm.titleFilePath.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传平台头图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let qyFilePathImage = (rule, value, callback) => { //验证器 |
| | | if (!this.ruleForm.qyFilePath.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传会员权益图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let ruleFilePathImage = (rule, value, callback) => { //验证器 |
| | | if (!this.ruleForm.ruleFilePath.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传会员权益图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | disabled: true, |
| | | payForm: { |
| | | prodImages: [], |
| | | prodListImages:[], |
| | | prodDescImages:"", |
| | | }, |
| | | licensePaths: [], |
| | | prodListImages:[], |
| | | prodDescImages:[], |
| | | payFormRule: { |
| | | prodListImage:[{ required: true, trigger: "change",validator: validateImage}], |
| | | prodImages:[{ required: true, trigger: "change",validator: validateImage1}], |
| | | prodDescImages:[{ required: true, trigger: "change",validator: validateImage2}], |
| | | desc: [{ required: true, message: "请输入商品简介", trigger: "blur" }], |
| | | status:[{ required: true, message: "请选择上架状态", trigger: "change" }] |
| | | }, |
| | | formInline: { |
| | | status:"all", |
| | | }, |
| | | disabled: false, |
| | | formInline: {status:"all"}, |
| | | searchData: {}, |
| | | columns: [ |
| | | { |
| | |
| | | { |
| | | lable: "项目链接", |
| | | prop: "projUrl", |
| | | align: "center", |
| | | width: "200", |
| | | align: "center" |
| | | }, |
| | | { |
| | | lable: "创建时间", |
| | |
| | | { |
| | | lable: "操作", |
| | | align: "center", |
| | | width: "180", |
| | | width: "200", |
| | | fixed: "right", |
| | | render: (h, scope) => { |
| | | return h("div", [ |
| | | h( |
| | | "span", |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text' |
| | | }, |
| | | style: { |
| | | cursor: "pointer", |
| | | color: "#3C8EFE", |
| | | display: this.filterBtnById(150101) |
| | | ? "inline-block" |
| | | : "none", |
| | | // display: this.filterBtnById(150101) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | |
| | | this.title = '项目详情'; |
| | | this.disabled = true; |
| | | let {projId} = scope.row; |
| | | this.getProductDetail(projId); |
| | | }, |
| | | }, |
| | | }, |
| | | "查看详情" |
| | | ), |
| | | h( |
| | | "span", |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text' |
| | | }, |
| | | style: { |
| | | cursor: "pointer", |
| | | "margin-left": "8px", |
| | | color: "#3C8EFE", |
| | | display: this.filterBtnById(150104) |
| | | ? "inline-block" |
| | | : "none", |
| | | "margin-left": "15px", |
| | | // display: this.filterBtnById(150104) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | |
| | | this.title = '编辑项目'; |
| | | this.disabled = false; |
| | | let {projId} = scope.row; |
| | | this.getProductDetail(projId); |
| | | }, |
| | | }, |
| | | }, |
| | | "编辑" |
| | | ), |
| | | ) |
| | | ]); |
| | | }, |
| | | }, |
| | | ], |
| | | relustObj: {}, |
| | | addProd:false, |
| | | createdTime:[] |
| | | createdTime:[], |
| | | ruleForm:{ |
| | | backFilePath:[], |
| | | logoFilePath:[], |
| | | titleFilePath:[], |
| | | qyFilePath:[], |
| | | ruleFilePath:[] |
| | | }, |
| | | rules: { |
| | | projName: [ |
| | | { required: true, message: '请输入项目名称', trigger: 'blur' } |
| | | ], |
| | | projPrice: [ |
| | | { required: true, message: '请输入项目价格', trigger: 'blur' } |
| | | ], |
| | | projUrl: [ |
| | | { required: true, message: '请输入项目链接', trigger: 'blur' } |
| | | ], |
| | | projDesc: [ |
| | | { required: true, message: '请输入项目描述', trigger: 'blur' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: '请选择项目状态', trigger: 'change' } |
| | | ], |
| | | backFilePath: [ |
| | | { required: true,trigger: 'change',validator: backFilePathImage } |
| | | ], |
| | | logoFilePath: [ |
| | | { required: true, trigger: 'change',validator: logoFilePathImage } |
| | | ], |
| | | titleFilePath: [ |
| | | { required: true, trigger: 'change',validator: titleFilePathImage } |
| | | ], |
| | | qyFilePath: [ |
| | | { required: true, trigger: 'change' ,validator: qyFilePathImage } |
| | | ], |
| | | ruleFilePath: [ |
| | | { required: true, trigger: 'change',validator: ruleFilePathImage } |
| | | ] |
| | | }, |
| | | title:"新增项目" |
| | | } |
| | | }, |
| | | watch:{ |
| | | addProd:{ |
| | | handler: function(val) { |
| | | if(!val){ |
| | | this.ruleForm = { |
| | | projName:"", |
| | | projPrice:"", |
| | | projUrl:"", |
| | | projDesc:"", |
| | | status:"", |
| | | backFilePath:[], |
| | | logoFilePath:[], |
| | | titleFilePath:[], |
| | | qyFilePath:[], |
| | | ruleFilePath:[] |
| | | }; |
| | | this.$refs['ruleForm'].resetFields(); |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | |
| | | this.addProd = false; |
| | | }, |
| | | addProduct(){ |
| | | this.title = '新增项目'; |
| | | this.addProd = true; |
| | | this.disabled = false; |
| | | }, |
| | | onSearch() { |
| | |
| | | }, |
| | | getDataList(e) { |
| | | }, |
| | | // prodDescSend(e){ |
| | | // //文件上传 |
| | | // this.payForm.prodDescImages = e.map((res) => { |
| | | // return res.filePath; |
| | | // }); |
| | | // this.$refs.prodDescImagesIplaod.clearValidate(); |
| | | // }, |
| | | // productShowUSend(e){ |
| | | // this.payForm.prodListImages = e.map((res) => { |
| | | // return res.filePath; |
| | | // }); |
| | | // this.$refs.productShowUpload.clearValidate(); |
| | | // }, |
| | | submitForm(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | let {backFilePath,logoFilePath,titleFilePath,qyFilePath,ruleFilePath,projId} = this.ruleForm; |
| | | let method = {projectUpdata,projectAdd}; |
| | | let data = {}; |
| | | if(projId){ |
| | | data = {...this.ruleForm,backFilePath:backFilePath[0],logoFilePath:logoFilePath[0],titleFilePath:titleFilePath[0],qyFilePath:qyFilePath[0],ruleFilePath:ruleFilePath[0]} |
| | | }else{ |
| | | data = {...this.ruleForm,backFilePath:backFilePath[0],logoFilePath:logoFilePath[0],titleFilePath:titleFilePath[0],qyFilePath:qyFilePath[0],ruleFilePath:ruleFilePath[0]} |
| | | } |
| | | method[projId?"projectUpdata":"projectAdd"](data).then(res=>{ |
| | | this.$message.success("创建成功"); |
| | | this.addProd = false; |
| | | this.onSearch(); |
| | | }) |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | imgSet(e,id){ |
| | | let fileRef = id + ""; |
| | | //文件上传 |
| | | this.ruleForm[id] = e.map((res) => { |
| | | return res.filePath; |
| | | }); |
| | | this.$refs[fileRef].clearValidate(); |
| | | }, |
| | | getProductDetail(projId,type){ |
| | | projectDtl({projId:projId}).then(({body})=>{ |
| | | let {backFilePath,logoFilePath,titleFilePath,qyFilePath,ruleFilePath} = body; |
| | | body.backFilePath = this.setDefaultImg(backFilePath,'backFilePath'); |
| | | body.logoFilePath = this.setDefaultImg(logoFilePath,'logoFilePath'); |
| | | body.titleFilePath = this.setDefaultImg(titleFilePath,"titleFilePath"); |
| | | body.qyFilePath = this.setDefaultImg(qyFilePath,"qyFilePath"); |
| | | body.ruleFilePath = this.setDefaultImg(ruleFilePath,"ruleFilePath"); |
| | | this.ruleForm = body; |
| | | this.$nextTick(()=>{ |
| | | this.addProd = true; |
| | | }); |
| | | }) |
| | | }, |
| | | setDefaultImg(url,type){ |
| | | let backArr = [url].map((n,index)=>{ |
| | | return {url:n,filePath:n,uid:type+index,fileId:type+index,fileName:n,name:n}; |
| | | }); |
| | | return backArr |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | </div> |
| | | </div> |
| | | <el-form-item style="text-align: right;"> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" v-if='filterBtnById("150102")' @click="addProduct">新 增</el-button> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div style="margin-left: 10px;text-align: right;"> |
| | | <el-button type="primary" size="small" @click="addPromotion">新增推广位</el-button> |
| | | </div> |
| | | <Etable |
| | | hasIndex |
| | | httpUrl="promoteList" |
| | |
| | | }" |
| | | ></Etable> |
| | | </div> |
| | | <el-dialog top="8vh" title="新增商品" :visible.sync="addProd" width="60%"> |
| | | <el-dialog top="2vh" :title="title" :visible.sync="addProd" width="50%"> |
| | | <!-- 新增商品名称 --> |
| | | |
| | | |
| | | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :disabled="disabled" size="small" label-width="100px" class="demo-ruleForm"> |
| | | <el-form-item label="项目" prop="projId"> |
| | | <el-select v-model="ruleForm.projId" placeholder="请选择项目"> |
| | | <el-option |
| | | v-for="item in relustObj.projList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="代理名称" prop="agencyName"> |
| | | <el-input v-model="ruleForm.agencyName" :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="推广位名称" prop="promName"> |
| | | <el-input v-model="ruleForm.promName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="推广位姓名" prop="promoterName"> |
| | | <el-input v-model="ruleForm.promoterName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="推广位电话" prop="promoterMblNo"> |
| | | <el-input v-model="ruleForm.promoterMblNo"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="推广位状态" prop="status"> |
| | | <el-radio-group v-model="ruleForm.status" :disabled="disabled"> |
| | | <el-radio v-for="item in relustObj.statusList" :key="item.code" :label="item.code">{{ item.name }}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item style="text-align:right;" v-if="!disabled"> |
| | | <el-button type="primary" @click="submitForm('ruleForm')">保 存</el-button> |
| | | <!-- <el-button @click="resetForm('ruleForm')">重置</el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | import Etable from "@/components/table.vue"; |
| | | import {promoteInit,promoteAdd,promoteDtl,promotePpdate} from "@/api/credit"; |
| | | import uploadImg from "@/components/upload.vue"; |
| | | import MultipleSelect from "@/components/secect.vue"; |
| | | import MultipleSelect from "@/components/fl-select.vue"; |
| | | export default { |
| | | name: "order", |
| | | components: { Etable, MultipleSelect, uploadImg }, |
| | | data() { |
| | | let validateImage = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodListImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品展示图片')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let validateImage1 = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品轮播图')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let validateImage2 = (rule, value, callback) => { //验证器 |
| | | if (!this.payForm.prodDescImages.length) { //为true代表图片在 false报错 |
| | | callback(new Error('请上传商品详情图片')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | disabled: true, |
| | | payForm: { |
| | | prodImages: [], |
| | | prodListImages:[], |
| | | prodDescImages:"", |
| | | }, |
| | | disabled: false, |
| | | ruleForm: {}, |
| | | columns: [ |
| | | { |
| | | lable: "推广位链接", |
| | |
| | | render: (h, scope) => { |
| | | return h("div", [ |
| | | h( |
| | | "span", |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text', |
| | | size:'small' |
| | | }, |
| | | style: { |
| | | cursor: "pointer", |
| | | color: "#3C8EFE", |
| | | display: this.filterBtnById(150101) |
| | | ? "inline-block" |
| | | : "none", |
| | | // display: this.filterBtnById(150101) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | |
| | | this.title ='推广位详情'; |
| | | this.disabled =true; |
| | | let { promId } = scope.row; |
| | | this.getProductDetail(promId) |
| | | }, |
| | | }, |
| | | }, |
| | | "查看详情" |
| | | ), |
| | | h( |
| | | "span", |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text', |
| | | size:'small' |
| | | }, |
| | | style: { |
| | | cursor: "pointer", |
| | | "margin-left": "8px", |
| | | color: "#3C8EFE", |
| | | display: this.filterBtnById(150104) |
| | | ? "inline-block" |
| | | : "none", |
| | | // display: this.filterBtnById(150101) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | |
| | | this.disabled = false; |
| | | this.title ='编辑推广位'; |
| | | let { promId } = scope.row; |
| | | this.getProductDetail(promId) |
| | | }, |
| | | }, |
| | | }, |
| | |
| | | }, |
| | | }, |
| | | ], |
| | | licensePaths: [], |
| | | prodListImages:[], |
| | | prodDescImages:[], |
| | | payFormRule: { |
| | | prodListImage:[{ required: true, trigger: "change",validator: validateImage}], |
| | | prodImages:[{ required: true, trigger: "change",validator: validateImage1}], |
| | | prodDescImages:[{ required: true, trigger: "change",validator: validateImage2}], |
| | | desc: [{ required: true, message: "请输入商品简介", trigger: "blur" }], |
| | | rules: { |
| | | projId:[{ required: true, trigger: "change",message: "请选择项目"}], |
| | | agencyName:[{ required: true, trigger: "blur",message: "请输入代理名称"}], |
| | | promName:[{ required: true, trigger: "blur",message: "请输入推广位名称"}], |
| | | promoterName:[{ required: true, trigger: "blur",message: "请输入推广位姓名"}], |
| | | promoterMblNo:[{ required: true, trigger: "blur",message: "请输入推广位电话"}], |
| | | status:[{ required: true, message: "请选择上架状态", trigger: "change" }] |
| | | }, |
| | | formInline: { |
| | | status:"all", |
| | | }, |
| | | searchData: {}, |
| | | |
| | | relustObj: {}, |
| | | addProd:false, |
| | | createdTime:[], |
| | | promotionCreatedTime:[] |
| | | promotionCreatedTime:[], |
| | | title:'新增推广位' |
| | | } |
| | | }, |
| | | watch:{ |
| | | addProd:{ |
| | | handler: function(val) { |
| | | if(!val){ |
| | | this.ruleForm = { |
| | | agencyName:"", |
| | | promName:"", |
| | | promoterName:"", |
| | | promoterMblNo:"", |
| | | status:"" |
| | | }; |
| | | this.$refs['ruleForm'].resetFields(); |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | |
| | | //只能输入整数 |
| | | e.target.value = e.target.value.replace(/[^\d]/g, ""); |
| | | }, |
| | | addPDH(){ |
| | | this.$refs['skuObj'].validate((valid) => { |
| | | submitForm(){ |
| | | this.$refs['ruleForm'].validate((valid) => { |
| | | if(valid){ |
| | | let {productAttr,prodName,prodFundType,prodOsType} = this.skuObj; |
| | | let data = {prodName,prodFundType,prodOsType,prodBrandCode:productAttr[1].value,prodModelCode:productAttr[2].value,prodType:productAttr[0].value}; |
| | | prodAdd(data).then((res)=>{ |
| | | let { promId } = this.ruleForm; |
| | | let event = {promoteAdd,promotePpdate}; |
| | | event[promId?"promotePpdate":"promoteAdd"](this.ruleForm).then((res)=>{ |
| | | this.addProd = false; |
| | | this.initSerch(); |
| | | this.onSearch(); |
| | | }) |
| | | } |
| | | }) |
| | |
| | | this.$refs["skuObj"].resetFields(); |
| | | this.addProd = false; |
| | | }, |
| | | addProduct(){ |
| | | addPromotion(){ |
| | | this.addProd = true; |
| | | this.title='新增推广位'; |
| | | this.disabled = false; |
| | | }, |
| | | onSearch() { |
| | |
| | | }, |
| | | getDataList(e) { |
| | | }, |
| | | // prodDescSend(e){ |
| | | // //文件上传 |
| | | // this.payForm.prodDescImages = e.map((res) => { |
| | | // return res.filePath; |
| | | // }); |
| | | // this.$refs.prodDescImagesIplaod.clearValidate(); |
| | | // }, |
| | | // productShowUSend(e){ |
| | | // this.payForm.prodListImages = e.map((res) => { |
| | | // return res.filePath; |
| | | // }); |
| | | // this.$refs.productShowUpload.clearValidate(); |
| | | // }, |
| | | getProductDetail(promId,type){ |
| | | promoteDtl({promId:promId}).then(({body})=>{ |
| | | this.ruleForm = body; |
| | | this.$nextTick(()=>{ |
| | | this.addProd = true; |
| | | }); |
| | | }) |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div> |
| | | <div class="main_index"> |
| | | <div class="search_from"> |
| | | <el-form |
| | | :model="formInline" |
| | | inline |
| | | label-width="100px" |
| | | class="form-flex" |
| | | size="small" |
| | | > |
| | | <div style="width: 90%"> |
| | | <el-form-item label="订单编号:"> |
| | | <el-input |
| | | v-model.trim="formInline.orderId" |
| | | style="width: 240px" |
| | | @keyup.native="keyupEvent($event)" |
| | | type="tel" |
| | | clearable |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码:"> |
| | | <el-input |
| | | v-model.trim="formInline.mblNo" |
| | | style="width: 240px" |
| | | @keyup.native="keyupEvent($event)" |
| | | type="tel" |
| | | clearable |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="签约时间:"> |
| | | <el-date-picker |
| | | v-model="createdTime" |
| | | style="width: 240px" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="推广位:"> |
| | | <el-select |
| | | v-model="formInline.promId" |
| | | style="width:240px" |
| | | clearable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value="all"></el-option> |
| | | <el-option |
| | | v-for="item in relustObj.promoteList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="订单状态:"> |
| | | <el-select |
| | | v-model="formInline.orderStatus" |
| | | style="width:240px" |
| | | clearable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value="all"></el-option> |
| | | <el-option |
| | | v-for="item in relustObj.orderStatusList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="代理名称:"> |
| | | <el-select |
| | | v-model="formInline.agencyName" |
| | | style="width:240px" |
| | | clearable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value="all"></el-option> |
| | | <el-option |
| | | v-for="item in relustObj.agencyList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item style="text-align: right;"> |
| | | |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div style="margin-left: 10px;text-align: right;"> |
| | | <el-button type="primary" size="small" @click="addProduct">导出excel</el-button> |
| | | </div> |
| | | <Etable |
| | | hasIndex |
| | | hasSelection |
| | | rowKey="orderId" |
| | | httpUrl="orderList" |
| | | :columns="columns" |
| | | :searchData="searchData" |
| | | @getDataList="getDataList" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :exportUrl="{ |
| | | url: '/qyp/order/orderExport', |
| | | powerId: '', |
| | | name: '订单列表', |
| | | }" |
| | | ></Etable> |
| | | </div> |
| | | <el-dialog top="2vh" :title="title" :visible.sync="addProd" width="60%"> |
| | | <el-descriptions> |
| | | <el-descriptions-item label="订单编号">{{ orderDetail.orderId }}</el-descriptions-item> |
| | | <el-descriptions-item label="订单创建时间">{{ orderDetail.creTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="订单状态">{{ orderDetail.orderStatusStr }}</el-descriptions-item> |
| | | <el-descriptions-item label="电话号码">{{ orderDetail.mblNo }}</el-descriptions-item> |
| | | <el-descriptions-item label="代理名称">{{ orderDetail.agencyName }}</el-descriptions-item> |
| | | <el-descriptions-item label="推广位名称">{{ orderDetail.promName }}</el-descriptions-item> |
| | | <el-descriptions-item label="签约时间">{{ orderDetail.signTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="解约时间">{{ orderDetail.terminateTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="项目名称">{{ orderDetail.projName }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Etable from "../../components/table.vue"; |
| | | import {orderInit,orderDtl} from "@/api/credit"; |
| | | import uploadImg from "@/components/upload.vue"; |
| | | export default { |
| | | name: "order", |
| | | components: { Etable,uploadImg }, |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | formInline: {status:"all"}, |
| | | searchData: {}, |
| | | columns: [ |
| | | { |
| | | lable: "订单编号", |
| | | prop: "orderId", |
| | | align: "center", |
| | | width: "300", |
| | | }, |
| | | { |
| | | lable: "签约时间", |
| | | prop: "signTime", |
| | | align: "center", |
| | | width: "180", |
| | | }, |
| | | { |
| | | lable: "订单状态", |
| | | prop: "orderStatusStr", |
| | | align: "center" |
| | | }, |
| | | { |
| | | lable: "电话号码", |
| | | prop: "mblNo", |
| | | align: "center", |
| | | width: "150", |
| | | }, |
| | | { |
| | | lable: "代理名称", |
| | | prop: "agencyName", |
| | | align: "center", |
| | | width: "180", |
| | | }, |
| | | { |
| | | lable: "推广位名称", |
| | | prop: "promName", |
| | | align: "center", |
| | | width: "180" |
| | | }, |
| | | { |
| | | lable: "支付金额", |
| | | prop: "payAmt", |
| | | align: "center", |
| | | width: "180" |
| | | }, |
| | | { |
| | | lable: "支付方式", |
| | | prop: "payType", |
| | | align: "center", |
| | | width: "180" |
| | | }, |
| | | { |
| | | lable: "是否使用优惠券", |
| | | prop: "useCoup", |
| | | align: "center", |
| | | width: "180" |
| | | }, |
| | | { |
| | | lable: "", |
| | | }, |
| | | { |
| | | lable: "操作", |
| | | align: "center", |
| | | width: "200", |
| | | fixed: "right", |
| | | render: (h, scope) => { |
| | | return h("div", [ |
| | | h( |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text' |
| | | }, |
| | | style: { |
| | | // display: this.filterBtnById(150101) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.title = '订单详情'; |
| | | let {orderId} = scope.row; |
| | | this.getProductDetail(orderId); |
| | | }, |
| | | }, |
| | | }, |
| | | "查看详情" |
| | | ) |
| | | ]); |
| | | }, |
| | | }, |
| | | ], |
| | | relustObj: {}, |
| | | addProd:false, |
| | | createdTime:[], |
| | | title:"新增项目", |
| | | orderDetail:{}, |
| | | exportExcelList:[] |
| | | } |
| | | }, |
| | | watch:{ |
| | | addProd:{ |
| | | handler: function(val) { |
| | | if(!val){ |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | | created() { |
| | | |
| | | }, |
| | | mounted() { |
| | | |
| | | this.initSerch(); |
| | | }, |
| | | methods: { |
| | | |
| | | addProduct(){ |
| | | if(!this.exportExcelList.length){ |
| | | return this.$message.error("请选择订单后导出"); |
| | | } |
| | | }, |
| | | keyupEvent(e) { |
| | | //只能输入整数 |
| | | e.target.value = e.target.value.replace(/[^\d]/g, ""); |
| | | }, |
| | | onSearch() { |
| | | if (this.createdTime && this.createdTime.length) { |
| | | this.formInline.signStartTime = this.createdTime[0]; |
| | | this.formInline.signEndTime = this.createdTime[1]; |
| | | } else { |
| | | this.formInline.signStartTime = null; |
| | | this.formInline.signEndTime = null; |
| | | } |
| | | let objForm = JSON.parse(JSON.stringify(this.formInline)); |
| | | for (let key in objForm) { |
| | | if (objForm[key] === "all") { |
| | | delete objForm[key]; |
| | | } |
| | | } |
| | | this.searchData = { ...objForm }; |
| | | }, |
| | | initSerch() { |
| | | orderInit().then(({ body }) => { |
| | | this.relustObj = body; |
| | | }); |
| | | }, |
| | | getDataList(e) { |
| | | }, |
| | | handleSelectionChange(list){ |
| | | this.exportExcelList = list; |
| | | }, |
| | | getProductDetail(orderId){ |
| | | orderDtl({orderId:orderId}).then(({body})=>{ |
| | | this.orderDetail = body; |
| | | this.addProd = true; |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | <style scoped lang="scss"> |
| | | .main_index { |
| | | background-color: #f0f2f5; |
| | | .table_box_num { |
| | | margin-top: 5px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | color: #666; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | padding-right: 16px; |
| | | box-sizing: border-box; |
| | | span { |
| | | display: inline-block; |
| | | &:nth-child(even) { |
| | | margin-right: 20px; |
| | | color: #333; |
| | | } |
| | | } |
| | | } |
| | | .el-form-div { |
| | | width: 100%; |
| | | display: flex; |
| | | } |
| | | .tips{ |
| | | color: #f56c6c; |
| | | } |
| | | } |
| | | </style> |
| | | |
| | |
| | | |
| | | <!-- |
| | | * @Author: zhaoxiaoqiang 287285524@qq.com |
| | | * @Date: 2023-08-24 15:16:23 |
| | | * @LastEditors: zhaoxiaoqiang 287285524@qq.com |
| | | * @LastEditTime: 2023-08-24 16:57:47 |
| | | * @LastEditTime: 2023-08-31 08:58:17 |
| | | * @FilePath: \qyp_plat\src\views\qyp-project-order\history.vue |
| | | * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE |
| | | --> |
| | |
| | | <template> |
| | | <div> |
| | | <div class="main_index"> |
| | | <div class="search_from"> |
| | | <el-form |
| | | :model="formInline" |
| | | inline |
| | | label-width="100px" |
| | | class="form-flex" |
| | | size="small" |
| | | > |
| | | <div style="width: 90%"> |
| | | <el-form-item label="订单编号:"> |
| | | <el-input |
| | | v-model.trim="formInline.orderId" |
| | | style="width: 240px" |
| | | @keyup.native="keyupEvent($event)" |
| | | type="tel" |
| | | clearable |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码:"> |
| | | <el-input |
| | | v-model.trim="formInline.mblNo" |
| | | style="width: 240px" |
| | | @keyup.native="keyupEvent($event)" |
| | | type="tel" |
| | | clearable |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="签约时间:"> |
| | | <el-date-picker |
| | | v-model="createdTime" |
| | | style="width: 240px" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="推广位:"> |
| | | <el-select |
| | | v-model="formInline.promId" |
| | | style="width:240px" |
| | | clearable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value="all"></el-option> |
| | | <el-option |
| | | v-for="item in relustObj.promoteList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="订单状态:"> |
| | | <el-select |
| | | v-model="formInline.orderStatus" |
| | | style="width:240px" |
| | | clearable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value="all"></el-option> |
| | | <el-option |
| | | v-for="item in relustObj.orderStatusList" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item style="text-align: right;"> |
| | | <!-- v-if='filterBtnById("150102")' --> |
| | | <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="table_box"> |
| | | <div style="margin-left: 10px;text-align: right;"> |
| | | <el-button type="primary" size="small" @click="addProduct">导出excel</el-button> |
| | | </div> |
| | | <Etable |
| | | hasIndex |
| | | hasSelection |
| | | rowKey="orderId" |
| | | httpUrl="orderList" |
| | | :columns="columns" |
| | | :searchData="searchData" |
| | | @getDataList="getDataList" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :exportUrl="{ |
| | | url: '/qyp/order/orderExport', |
| | | powerId: '', |
| | | name: '订单列表', |
| | | }" |
| | | ></Etable> |
| | | </div> |
| | | <el-dialog top="2vh" :title="title" :visible.sync="addProd" width="60%"> |
| | | <el-descriptions> |
| | | <el-descriptions-item label="订单编号">{{ orderDetail.orderId }}</el-descriptions-item> |
| | | <el-descriptions-item label="订单创建时间">{{ orderDetail.creTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="订单状态">{{ orderDetail.orderStatusStr }}</el-descriptions-item> |
| | | <el-descriptions-item label="电话号码">{{ orderDetail.mblNo }}</el-descriptions-item> |
| | | <el-descriptions-item label="代理名称">{{ orderDetail.agencyName }}</el-descriptions-item> |
| | | <el-descriptions-item label="推广位名称">{{ orderDetail.promName }}</el-descriptions-item> |
| | | <el-descriptions-item label="签约时间">{{ orderDetail.signTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="解约时间">{{ orderDetail.terminateTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="项目名称">{{ orderDetail.projName }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Etable from "../../components/table.vue"; |
| | | import {orderInit,orderDtl} from "@/api/credit"; |
| | | import uploadImg from "@/components/upload.vue"; |
| | | export default { |
| | | name: "order", |
| | | components: { Etable,uploadImg }, |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | formInline: {status:"all"}, |
| | | searchData: {}, |
| | | columns: [ |
| | | { |
| | | lable: "订单编号", |
| | | prop: "orderId", |
| | | align: "center", |
| | | width: "300", |
| | | }, |
| | | { |
| | | lable: "签约时间", |
| | | prop: "signTime", |
| | | align: "center", |
| | | width: "180", |
| | | }, |
| | | { |
| | | lable: "订单状态", |
| | | prop: "orderStatusStr", |
| | | align: "center" |
| | | }, |
| | | { |
| | | lable: "电话号码", |
| | | prop: "mblNo", |
| | | align: "center", |
| | | width: "150", |
| | | }, |
| | | { |
| | | lable: "代理名称", |
| | | prop: "agencyName", |
| | | align: "center", |
| | | width: "180", |
| | | }, |
| | | { |
| | | lable: "推广位名称", |
| | | prop: "promName", |
| | | align: "center", |
| | | width: "180" |
| | | }, |
| | | { |
| | | lable: "", |
| | | }, |
| | | { |
| | | lable: "操作", |
| | | align: "center", |
| | | width: "200", |
| | | fixed: "right", |
| | | render: (h, scope) => { |
| | | return h("div", [ |
| | | h( |
| | | "el-button", |
| | | { |
| | | props:{ |
| | | type:'text' |
| | | }, |
| | | style: { |
| | | // display: this.filterBtnById(150101) |
| | | // ? "inline-block" |
| | | // : "none", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.title = '订单详情'; |
| | | let {orderId} = scope.row; |
| | | this.getProductDetail(orderId); |
| | | }, |
| | | }, |
| | | }, |
| | | "查看详情" |
| | | ) |
| | | ]); |
| | | }, |
| | | }, |
| | | ], |
| | | relustObj: {}, |
| | | addProd:false, |
| | | createdTime:[], |
| | | title:"新增项目", |
| | | orderDetail:{}, |
| | | exportExcelList:[] |
| | | } |
| | | }, |
| | | watch:{ |
| | | addProd:{ |
| | | handler: function(val) { |
| | | if(!val){ |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | | created() { |
| | | |
| | | }, |
| | | mounted() { |
| | | |
| | | this.initSerch(); |
| | | }, |
| | | methods: { |
| | | |
| | | addProduct(){ |
| | | if(!this.exportExcelList.length){ |
| | | return this.$message.error("请选择订单后导出"); |
| | | } |
| | | }, |
| | | keyupEvent(e) { |
| | | //只能输入整数 |
| | | e.target.value = e.target.value.replace(/[^\d]/g, ""); |
| | | }, |
| | | onSearch() { |
| | | if (this.createdTime && this.createdTime.length) { |
| | | this.formInline.signStartTime = this.createdTime[0]; |
| | | this.formInline.signEndTime = this.createdTime[1]; |
| | | } else { |
| | | this.formInline.signStartTime = null; |
| | | this.formInline.signEndTime = null; |
| | | } |
| | | let objForm = JSON.parse(JSON.stringify(this.formInline)); |
| | | for (let key in objForm) { |
| | | if (objForm[key] === "all") { |
| | | delete objForm[key]; |
| | | } |
| | | } |
| | | this.searchData = { ...objForm }; |
| | | }, |
| | | initSerch() { |
| | | orderInit().then(({ body }) => { |
| | | this.relustObj = body; |
| | | }); |
| | | }, |
| | | getDataList(e) { |
| | | }, |
| | | handleSelectionChange(list){ |
| | | this.exportExcelList = list; |
| | | }, |
| | | getProductDetail(orderId){ |
| | | orderDtl({orderId:orderId}).then(({body})=>{ |
| | | this.orderDetail = body; |
| | | this.addProd = true; |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | <style scoped lang="scss"> |
| | | .main_index { |
| | | background-color: #f0f2f5; |
| | | .table_box_num { |
| | | margin-top: 5px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | color: #666; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | padding-right: 16px; |
| | | box-sizing: border-box; |
| | | span { |
| | | display: inline-block; |
| | | &:nth-child(even) { |
| | | margin-right: 20px; |
| | | color: #333; |
| | | } |
| | | } |
| | | } |
| | | .el-form-div { |
| | | width: 100%; |
| | | display: flex; |
| | | } |
| | | .tips{ |
| | | color: #f56c6c; |
| | | } |
| | | } |
| | | </style> |
| | | |