liuhj vor 7 Monaten
Ursprung
Commit
6f647c1f9f

+ 12 - 5
src/components/MCR/MarketCustomerResourcesOperation.vue

@@ -7,7 +7,7 @@
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="客户级别:" prop="lvlid">
+                                <el-form-item label="客户区域:" prop="lvlid">
                                     <el-select v-model="requestData.lvlid" placeholder="请选择客户级别">
                                         <el-option v-for="item in level" :key="item.id" :label="item.name"
                                             :value="item.id"></el-option>
@@ -27,7 +27,7 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="权重:" prop="weight">
+                                <el-form-item label="权重:">
                                     <el-select v-model="requestData.weight" placeholder="权重">
                                         <el-option label="A" value="393"></el-option>
                                         <el-option label="B" value="392"></el-option>
@@ -49,7 +49,7 @@
                         </el-col>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="性别">
+                                <el-form-item label="性别" prop="gender">
                                     <el-select v-model="requestData.gender" placeholder="请选择活动区域">
                                         <el-option label="男" :value="0"></el-option>
                                         <el-option label="女" :value="1"></el-option>
@@ -121,7 +121,7 @@
                     <el-row>
                         <el-col :span="8">
                             <div class="grid-content bg-purple">
-                                <el-form-item label="具体地址:">
+                                <el-form-item label="具体地址:" prop="address">
                                     <el-input v-model="requestData.address"></el-input>
                                 </el-form-item>
                             </div>
@@ -261,7 +261,10 @@ export default {
             users: [],//负责人
             rules: { //校验规则
                 lvlid: [
-                    { required: true, message: '请选择客户级别', trigger: 'blur' },
+                    { required: true, message: '请选择客户区域', trigger: 'blur' },
+                ],
+                gender: [
+                    { required: true, message: '请选择性别', trigger: 'blur' },
                 ],
                 category: [
                     { required: true, message: '请选择客户类别', trigger: 'blur' },
@@ -277,6 +280,7 @@ export default {
                 ],
                 contact: [
                     { required: true, message: '请输入联系人名称', trigger: 'blur' },
+                    { min: 2, max: 5, message: '长度在 2 到 5 个字符', trigger: 'blur' }
                 ],
                 telephone: [
                     { required: true, message: '请输入联系人手机号', trigger: 'blur' },
@@ -290,6 +294,9 @@ export default {
                 location: [
                     { required: true, message: '请输入所在城市', trigger: 'blur' },
                 ],
+                address: [
+                    { required: true, message: '请输入具体位置', trigger: 'blur' },
+                ],
             }
         }
     },

+ 3 - 0
src/components/OP/OpAirTicketRes.vue

@@ -733,6 +733,9 @@ export default {
                     if (that.cardPaymentOpData.ctdId == '') {
                         that.cardPaymentOpData.ctdId = 0;
                     }
+                    if(that.cardPaymentOpData.payDId!=72){
+                        that.cardPaymentOpData.ctdId=0
+                    }
                     var url = "/api/Groups/OpAirTicketRes"
                     that.$axios({
                         method: 'post',

+ 141 - 0
src/components/OP/SuppliesInventory.vue

@@ -0,0 +1,141 @@
+<template>
+    <div class="SuppliesInventory-all">
+        <div class="SuppliesInventory-head">
+            <div class="SuppliesInventory-head-li">
+                <label>物资类型:</label>
+                <el-select style="width:220px" @change="MaterialTypechange" v-model="MaterialType" clearable filterable
+                    placeholder="请选择">
+                    <el-option v-for="item in MaterialTypearr" :key="item.id" :label="item.name"
+                        :value="item.id">
+                    </el-option>
+                </el-select>
+            </div>
+            <div class="SuppliesInventory-head-li">
+                <label>物资详细类型:</label>
+                <el-select @change="MaterialinfoTypechange" style="width:220px" multiple collapse-tags v-model="MaterialinfoType" clearable filterable
+                    placeholder="请选择">
+                    <el-option v-for="item in MaterialinfoTypearr" :key="item.id" :label="item.name"
+                        :value="item.id">
+                    </el-option>
+                </el-select>
+            </div>
+            <div class="SuppliesInventory-head-li">
+                <label>物资名称:</label>
+                <el-input
+                style="width:220px"
+                placeholder="请输入内容"
+                v-model="Materialname"
+                clearable>
+                </el-input>
+            </div>
+            <div class="SuppliesInventory-head-li">
+                <el-button @click="GoodsList" type="primary">查 询</el-button>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            MaterialType:'',
+            MaterialTypearr:[],
+            MaterialinfoType:[],
+            MaterialinfoTypes:'',
+            MaterialinfoTypearr:[],
+            Materialname:'',
+        }
+    },
+    methods:{
+        //获取
+        GoodsInitDataSource() {
+            var url = "/api/PersonnelModule/GoodsInitDataSource"
+            var that = this
+            this.$axios({
+                method: 'get',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.MaterialTypearr=res.data.data.goodsTypeData;
+                    that.MaterialType=that.MaterialTypearr[0].id;
+                    that.MaterialTypechange();
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        //物资类型切换
+        MaterialTypechange(){
+            console.log(this.MaterialType);
+            console.log(this.MaterialTypearr);
+            this.MaterialinfoType="";
+            this.MaterialinfoTypearr=[];
+            for(let i=0;i<this.MaterialTypearr.length;i++){
+                if(this.MaterialType==this.MaterialTypearr[i].id){
+                    this.MaterialinfoTypearr=this.MaterialTypearr[i].subTypeItems;
+                }
+            }
+        },
+        //物资详情选择
+        MaterialinfoTypechange(){
+            this.MaterialinfoTypes=""
+            for(let i=0;i<this.MaterialinfoType.length;i++){
+                this.MaterialinfoTypes+=this.MaterialinfoType[i]+','
+            }
+            this.MaterialinfoTypes=this.MaterialinfoTypes.substring(0, this.MaterialinfoTypes.length - 1);
+            console.log(this.MaterialinfoTypes);
+        },
+        //获取列表
+        GoodsList() {
+            var url = "/api/PersonnelModule/GoodsList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    pageIndex: 1,
+                    pageSize: 10,
+                    typeIds: that.MaterialinfoTypes,
+                    goodsName: that.Materialname,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                  
+                }
+            }).catch(function (error) {
+                that.$message.error("获取团组失败");
+            });
+        },
+    },
+    mounted(){
+        this.GoodsInitDataSource();
+    }
+}
+</script>
+<style>
+.SuppliesInventory-all {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    min-height: 830px;
+    min-width: 900px;
+}
+.SuppliesInventory-head{
+    display: flex;
+}
+.SuppliesInventory-head-li{
+    margin-right: 15px;
+}
+.SuppliesInventory-head-li label{
+    font-size: 14px;
+    color: #555;
+}
+</style>

+ 136 - 57
src/components/Resource/OpInvitationOfficialActivityData.vue

@@ -119,21 +119,27 @@
                 </div>
                 <div style="display:flex ;">
                     <div style="width: 50%;">
-                        <el-form-item label="邀请函文件(原版):" prop="fileUrl" label-width="160px">
-                            <div>
-                                {{ OpInvitationOfficialActivityData.filePath }} <el-link
-                                    @click="DownloadOdl">下载原版文件</el-link>
-                            </div>
-
-                        </el-form-item>
                         <el-form-item label="邀请函文件(修改版):" prop="fileUrl" label-width="160px">
-                            <el-upload :file-list="uploadFiles" ref="upload" :on-success="upLoadSuccess"
-                                :on-error="upLoadError" :before-remove="beforeRemove" :on-change="onChange" :limit="1"
-                                :on-exceed="exceed" :action="uploadURL" :headers="headers" :auto-upload="false">
+                            <el-upload
+                                class="pop-upload"
+                                ref="upload"
+                                action=""
+                                :file-list="fileList"
+                                :auto-upload="false"
+                                :multiple="true"
+                                :on-change="handleChange"
+                                :on-preview="handlePreview"
+                                :on-remove="handleRemove"
+                                :before-remove="beforeRemove"
+                                name="files">
                                 <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
-                                <!-- <el-button style="margin-left: 10px;" size="small" type="success"
-                                    @click="submitUpload">上传到服务器</el-button> -->
                             </el-upload>
+                            <!-- <el-upload :file-list="uploadFiles" ref="upload" :on-success="upLoadSuccess"
+                                :on-error="upLoadError" :before-remove="beforeRemove" 
+                                :action="uploadURL" :headers="headers" :auto-upload="false">
+                                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                                
+                            </el-upload> -->
                         </el-form-item>
                     </div>
                     <div style="width: 50%;">
@@ -169,6 +175,7 @@ export default {
                 status: 0,
                 id: 0,
                 country: '',
+                files:[],
                 city: '',
                 unitName: '',
                 unitWeb: '',
@@ -232,6 +239,7 @@ export default {
             },
             OldFile: '',
             NewFile: '',
+            fileList:[]
         }
     },
 
@@ -260,36 +268,33 @@ export default {
             });
         },
         QueryInvitationOfficialActivityById() {
-            var url = "/api/Resource/QueryInvitationOfficialActivityById"
+            this.fileList=[];
+            var url = "/api/Resource/QueryInvitationOfficialActivityById/"+this.OpInvitationOfficialActivityData.id
             var that = this
             this.$axios({
-                method: 'post',
+                method: 'get',
                 url: url,
                 headers: {
-                    Authorization: 'Bearer ' + this.token
+                    Authorization: 'Bearer '
                 },
-                data: {
-                    Id: that.OpInvitationOfficialActivityData.id
-                }
             }).then(function (res) {
                 if (res.data.code == 200) {
-                    that.OpInvitationOfficialActivityData.id = res.data.data.id
-                    that.OpInvitationOfficialActivityData.country = res.data.data.country
-                    that.OpInvitationOfficialActivityData.city = res.data.data.city
-                    that.OpInvitationOfficialActivityData.unitName = res.data.data.unitName
-                    that.OpInvitationOfficialActivityData.unitWeb = res.data.data.unitWeb
-                    that.OpInvitationOfficialActivityData.field = res.data.data.field
-                    that.OpInvitationOfficialActivityData.address = res.data.data.address
-                    that.OpInvitationOfficialActivityData.unitInfo = res.data.data.unitInfo
-                    that.OpInvitationOfficialActivityData.contact = res.data.data.contact
-                    that.OpInvitationOfficialActivityData.job = res.data.data.job
-                    that.OpInvitationOfficialActivityData.tel = res.data.data.tel
-                    that.OpInvitationOfficialActivityData.email = res.data.data.email
-                    that.OpInvitationOfficialActivityData.weChat = res.data.data.weChat
-                    that.OpInvitationOfficialActivityData.faceBook = res.data.data.faceBook
-                    that.OpInvitationOfficialActivityData.ins = res.data.data.ins
+                    that.OpInvitationOfficialActivityData.id = res.data.data.id;
+                    that.OpInvitationOfficialActivityData.country = res.data.data.country;
+                    that.OpInvitationOfficialActivityData.city = res.data.data.city;
+                    that.OpInvitationOfficialActivityData.unitName = res.data.data.unitName;
+                    that.OpInvitationOfficialActivityData.unitWeb = res.data.data.unitWeb;
+                    that.OpInvitationOfficialActivityData.field = res.data.data.field;
+                    that.OpInvitationOfficialActivityData.address = res.data.data.address;
+                    that.OpInvitationOfficialActivityData.unitInfo = res.data.data.unitInfo;
+                    that.OpInvitationOfficialActivityData.contact = res.data.data.contact;
+                    that.OpInvitationOfficialActivityData.job = res.data.data.job;
+                    that.OpInvitationOfficialActivityData.tel = res.data.data.tel;
+                    that.OpInvitationOfficialActivityData.email = res.data.data.email;
+                    that.OpInvitationOfficialActivityData.weChat = res.data.data.weChat;
+                    that.OpInvitationOfficialActivityData.faceBook = res.data.data.faceBook;
+                    that.OpInvitationOfficialActivityData.ins = res.data.data.ins;
                     var delList = res.data.data.delegation.split(',')
-                    console.log(res.data.data.delegation)
                     var delegaLOist = [];
                     if (res.data.data.delegation) {
                         delList.forEach(function (item, index) {
@@ -298,14 +303,19 @@ export default {
                             )
                         });
                     }else{
-                        delegaLOist=''
+                        delegaLOist='';
+                    }
+                    that.OpInvitationOfficialActivityData.delegation = delegaLOist;
+                    that.OpInvitationOfficialActivityData.filePath = res.data.data.filePath;
+                    that.OpInvitationOfficialActivityData.sndFilePath = res.data.data.sndFilePath;
+                    that.OpInvitationOfficialActivityData.fax = res.data.data.fax;
+                    that.OpInvitationOfficialActivityData.createUserId = res.data.data.createUserId;
+                    that.OpInvitationOfficialActivityData.remark = res.data.data.remark;
+                    console.log(JSON.parse(res.data.data.sndFileName));
+                    var sndFileNamejson=JSON.parse(res.data.data.sndFileName)
+                    for (let h = 0; h < res.data.data.sndFilePathItem.length; h++) {
+                        that.fileList.push({url:res.data.data.sndFilePathItem[h],name:sndFileNamejson[h]})
                     }
-                    that.OpInvitationOfficialActivityData.delegation = delegaLOist
-                    that.OpInvitationOfficialActivityData.filePath = res.data.data.filePath
-                    that.OpInvitationOfficialActivityData.sndFilePath = res.data.data.sndFilePath
-                    that.OpInvitationOfficialActivityData.fax = res.data.data.fax
-                    that.OpInvitationOfficialActivityData.createUserId = res.data.data.createUserId
-                    that.OpInvitationOfficialActivityData.remark = res.data.data.remark
                     if (that.OpInvitationOfficialActivityData.filePath != null && that.OpInvitationOfficialActivityData.filePath != undefined && that.OpInvitationOfficialActivityData.filePath != "") {
                         that.uploadFiles.push({
                             name: that.OpInvitationOfficialActivityData.sndFilePath,
@@ -317,18 +327,65 @@ export default {
 
             })
         },
-
+        // 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用,function(file, fileList)
+        handleChange(file, fileList) {
+                this.fileList = fileList
+        },
+        //点击文件列表中已上传的文件
+        handlePreview(file){
+            console.log(file);
+            window.open(file.url);
+        },
+        // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。function(file, fileList)
+        handleRemove(file, fileList) {
+            this.fileList = fileList
+            if (file && file.status=="success") {
+                var that = this;
+                var url = "/api/Resource/InvitationOfficialActivityDelFile/"+that.OpInvitationOfficialActivityData.id+"?fileName="+file.name
+                this.$axios({
+                    method: 'delete',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + that.token
+                    },
+                }).then(function (res) {
+                    if (res.data.code == 200) {
+                        that.$message.success(res.data.msg);
+                    } else {
+                        that.$message.error(res.data.msg);
+                    }
+                })
+            }
+            
+        },
+        //删除文件
+        beforeRemove(file,fileList){
+            if(file && file.status=="success"){
+                return this.$confirm('此文件已上传至服务器此操作将永久删除该文件, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    // this.$message({
+                    //     type: 'success',
+                    //     message: '删除成功!'
+                    // });
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });     
+                    reject(false)     
+                });
+            }
+        },
         //点击保存事件
         addBtn() {
+            this.OpInvitationOfficialActivityData.files=this.fileList;
             const that = this;
             that.OpInvitationOfficialActivityData.createUserId = that.userId
             that.$refs.OpInvitationOfficialActivityData.validate((valid) => {
                 if (valid) {
-                    console.log(that.uploadFiles.length);
-                    console.log(that.uploadFiles);
-                    if (that.uploadFiles.length != 0 && that.uploadFiles[0].name!= that.OpInvitationOfficialActivityData.sndFilePath) {
-                        that.$refs.upload.submit();//上传文件到服务器
-                    }
                     var delegationStr = '';
                     if(that.OpInvitationOfficialActivityData.delegation){
                         that.OpInvitationOfficialActivityData.delegation.forEach(function (item, index) {
@@ -336,14 +393,42 @@ export default {
                         });
                         that.OpInvitationOfficialActivityData.delegation = delegationStr.substring(0, delegationStr.length - 1)
                     }
+                    var FormData = require('form-data');
+                    var datas=new FormData();
+                    for(let r=0;r<that.OpInvitationOfficialActivityData.files.length;r++){
+                        datas.append('Files',that.OpInvitationOfficialActivityData.files[r].raw);
+                    }
+                    datas.append('Status',that.OpInvitationOfficialActivityData.status);
+                    datas.append('Id',that.OpInvitationOfficialActivityData.id);
+                    datas.append('Country',that.OpInvitationOfficialActivityData.country);
+                    datas.append('City',that.OpInvitationOfficialActivityData.city);
+                    datas.append('UnitName',that.OpInvitationOfficialActivityData.unitName);
+                    datas.append('UnitWeb',that.OpInvitationOfficialActivityData.unitWeb);
+                    datas.append('Field',that.OpInvitationOfficialActivityData.field);
+                    datas.append('Address',that.OpInvitationOfficialActivityData.address);
+                    datas.append('UnitInfo',that.OpInvitationOfficialActivityData.unitInfo);
+                    datas.append('Contact',that.OpInvitationOfficialActivityData.contact);
+                    datas.append('Job',that.OpInvitationOfficialActivityData.job);
+                    datas.append('Tel',that.OpInvitationOfficialActivityData.tel);
+                    datas.append('Email',that.OpInvitationOfficialActivityData.email);
+                    datas.append('WeChat',that.OpInvitationOfficialActivityData.weChat);
+                    datas.append('FaceBook',that.OpInvitationOfficialActivityData.faceBook);
+                    datas.append('Ins',that.OpInvitationOfficialActivityData.ins);
+                    datas.append('Delegation',that.OpInvitationOfficialActivityData.delegation);
+                    datas.append('FilePath',that.OpInvitationOfficialActivityData.filePath);
+                    datas.append('SndFilePath',that.OpInvitationOfficialActivityData.sndFilePath);
+                    datas.append('Fax',that.OpInvitationOfficialActivityData.fax);
+                    datas.append('CreateUserId',that.OpInvitationOfficialActivityData.createUserId);
+                    datas.append('Remark',that.OpInvitationOfficialActivityData.remark);
+                    console.log(datas);
                     var url = "/api/Resource/OpInvitationOfficialActivity"
                     that.$axios({
                         method: 'post',
                         url: url,
                         headers: {
-                            Authorization: 'Bearer ' + that.token
+                            Authorization: 'Bearer '
                         },
-                        data: that.OpInvitationOfficialActivityData
+                        data: datas
                     }).then(function (res) {
                         if (res.data.code == 200) {
                             console.log(that.OpInvitationOfficialActivityData.delegation);
@@ -385,14 +470,6 @@ export default {
                 }
             })
         },
-        //上传
-        // 文件超出限制
-        exceed(files, fileList) {
-            this.$message.warning(
-                `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
-                } 个文件,请取消要替换的文件`
-            );
-        },
         //文件上传成功时的钩子
         upLoadSuccess(response, file, fileList) {
             if (response.code == 200) {
@@ -492,6 +569,7 @@ export default {
     padding: 10px;
     box-shadow: 0 0 5px #0005;
     border-radius: 10px;
+    min-height: 830px;
 }
 
 .car_add .communal-title {
@@ -529,6 +607,7 @@ export default {
     padding: 20px;
     box-shadow: 0 0 5px #0005;
     border-radius: 10px;
+    min-height: 820px;
 }
 
 @media screen and (max-width: 1700px) {

+ 6 - 0
src/router/index.js

@@ -122,6 +122,7 @@ import TellerStatementTB from '@/components/statistics/TellerStatementTB';
 import RoyaltyRecogn from '@/components/OP/RoyaltyRecogn';
 import GroupUnreviewed from '@/components/Finance/GroupUnreviewed';
 import VisaCommission from '@/components/OP/VisaCommission';
+import SuppliesInventory from '@/components/OP/SuppliesInventory';
 
 Vue.use(Router)
 
@@ -738,6 +739,11 @@ export default new Router({
           name: 'VisaCommission',
           component: VisaCommission
         },
+        {
+          path: '/home/SuppliesInventory',
+          name: 'SuppliesInventory',
+          component: SuppliesInventory
+        },
       ]
     },
     {