Quellcode durchsuchen

Merge branch 'master' of https://git.agilestar.cn/spfm-group/spfm-market-front into test

wgp vor 3 Jahren
Ursprung
Commit
5880216863

BIN
dist.zip


+ 1 - 1
src/components/deptTreeUser.vue

@@ -30,7 +30,7 @@
         },
         methods: {
             cs(v){
-                console.log(v)
+                // console.log(v)
             },
             getTree(v) {
                 this.loading = true;

+ 79 - 62
src/pages/main/advReleaseAppro/advgys.vue

@@ -4,8 +4,8 @@
             <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
             <div class="search">
                 <mySearch :searchList="searchList" @searchInfo="searchInfo"></mySearch>
-                <el-button class="btn-check" size="medium" type="primary" @click="dialogCheck(3)">添加
-                </el-button>
+                <!-- <el-button class="btn-check" size="medium" type="primary" @click="dialogCheck(3)">添加
+                </el-button> -->
             </div>
             <div class="tabbox">
                 <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
@@ -14,29 +14,29 @@
                     </el-table-column>
                     <el-table-column prop="supplierCode" label="合同编码">
                     </el-table-column>
-					<el-table-column prop="contractName" label="合同名称">
+                    <el-table-column prop="contractName" label="合同名称">
                     </el-table-column>
-					<el-table-column prop="frameSum" label="框架总额">
+                    <el-table-column prop="frameSum" label="框架总额">
+                    </el-table-column>
+                    <el-table-column prop="surplusSum" label="预算剩余额度">
+                    </el-table-column>
+                    <el-table-column prop="taxRate" label="合同税率">
                     </el-table-column>
-					<el-table-column prop="surplusSum" label="预算剩余额度">
-					</el-table-column>
-					<el-table-column prop="taxRate" label="合同税率">
-					</el-table-column>
                     <el-table-column prop="frameSurplusSum" label="框架剩余总额">
-					</el-table-column>
-					<el-table-column prop="budgetSum" label="预算总额">
-					</el-table-column>
-					<el-table-column prop="endTime" label="截止时间">
-					</el-table-column>
-					<el-table-column prop="homeLocation" label="归属地">
-					</el-table-column>
-                    <el-table-column label="操作" width="160px" align="center">
+                    </el-table-column>
+                    <el-table-column prop="budgetSum" label="预算总额">
+                    </el-table-column>
+                    <el-table-column prop="endTime" label="截止时间">
+                    </el-table-column>
+                    <el-table-column prop="homeLocation" label="归属地">
+                    </el-table-column>
+                    <!-- <el-table-column label="操作" width="160px" align="center">
                         <template slot-scope="scope">
                             <el-button size="mini" type="primary" @click="dialogCheck(1,scope.row)">查看</el-button>
                             <el-button size="mini" type="primary" @click="dialogCheck(2,scope.row)">修改</el-button>
                             <el-button size="mini" type="danger" @click="delLine(scope.row)">删除</el-button>
                         </template>
-                    </el-table-column>
+                    </el-table-column> -->
                 </el-table>
                 <!-- <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
                     :total="total">
@@ -51,37 +51,44 @@
                     <div class="info-line">
                         <el-form-item prop="supplierName">
                             <span>供应商</span>
-                            <el-input v-model="infolist.supplierName" placeholder="供应商名称" :disabled="disableStatus"></el-input>
+                            <el-input v-model="infolist.supplierName" placeholder="供应商名称" :disabled="disableStatus">
+                            </el-input>
                         </el-form-item>
-						<el-form-item>
+                        <el-form-item>
                             <span>供应商编码</span>
-                            <el-input v-model="infolist.supplierCode" placeholder="合同编码" :disabled="disableStatus"></el-input>
+                            <el-input v-model="infolist.supplierCode" placeholder="合同编码" :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>框架总额</span>
+                            <el-input v-model="infolist.frameSum" placeholder="框架总额" :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>剩余总额</span>
+                            <el-input v-model="infolist.surplusSum" placeholder="剩余总额" :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>合同名称</span>
+                            <el-input v-model="infolist.contractName" placeholder="合同名称" :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>合同税率</span>
+                            <el-input v-model="infolist.taxRate" placeholder="合同税率" :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>截止时间</span>
+                            <el-date-picker v-model="infolist.endTime" type="date" placeholder="截止时间"
+                                :disabled="disableStatus">
+                            </el-date-picker>
+                        </el-form-item>
+                        <el-form-item>
+                            <span>归属地</span>
+                            <el-input v-model="infolist.homeLocation" placeholder="归属地" disabled></el-input>
                         </el-form-item>
-						<el-form-item>
-						    <span>框架总额</span>
-						    <el-input v-model="infolist.frameSum" placeholder="框架总额" :disabled="disableStatus"></el-input>
-						</el-form-item>
-						<el-form-item>
-						    <span>剩余总额</span>
-						    <el-input v-model="infolist.surplusSum" placeholder="剩余总额" :disabled="disableStatus"></el-input>
-						</el-form-item>
-						<el-form-item>
-						    <span>合同名称</span>
-						    <el-input v-model="infolist.contractName" placeholder="合同名称" :disabled="disableStatus"></el-input>
-						</el-form-item>
-						<el-form-item>
-						    <span>合同税率</span>
-						    <el-input v-model="infolist.taxRate" placeholder="合同税率" :disabled="disableStatus"></el-input>
-						</el-form-item>
-						<el-form-item>
-						    <span>截止时间</span>
-						    <el-date-picker v-model="infolist.endTime" type="date" placeholder="截止时间" :disabled="disableStatus">
-						    </el-date-picker>
-						</el-form-item>
-						<el-form-item>
-						    <span>归属地</span>
-						    <el-input v-model="infolist.homeLocation" placeholder="归属地" disabled></el-input>
-						</el-form-item>
                     </div>
                 </el-form>
 
@@ -93,7 +100,8 @@
             </div>
         </el-dialog>
 
-        <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible" v-if="centerDialogVisible"></myMessage>
+        <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
+            v-if="centerDialogVisible"></myMessage>
     </fullscreen>
 
 </template>
@@ -124,15 +132,14 @@
                         validator: supplierName
                     }],
                 },
-                searchList: [
-                    {
-                        type: 'input',
-                        tit: '供应商名称',
-                        value: '',
-                        width: '98%',
-                    }
-                ],
-                tooltit:'供应商管理',
+                searchList: [{
+                    type: 'sel',
+                    tit: '地市公司名称',
+                    value: '',
+                    width: '98%',
+                    options: []
+                }],
+                tooltit: '供应商维护',
                 fullscreen: false,
                 total: 0,
                 pageSize: 1,
@@ -146,8 +153,8 @@
                 centerDialogVisible: false,
                 messTit: '',
                 delid: '',
-                loading:false,
-                loadinged:false,
+                loading: false,
+                loadinged: false,
             }
         },
         methods: {
@@ -158,7 +165,7 @@
             //搜索数据
             searchInfo(v) {
                 this.params = {};
-                v[0] ? this.params.supplierName = v[0] : '';
+                v[0] ? this.params.homeLocation = v[0] : '';
                 this.getList(this.params, this.pageSize);
             },
             //获取列表
@@ -167,8 +174,9 @@
                 let _this = this;
                 this.loading = true;
                 this.tableData = [];
+                v.supplierName = "黑龙江";
                 this.$http({
-                    url: "/market/cadvLedger/querySupplierList",
+                    url: "/market/cadvLedger/querySupplierList2",
                     method: "post",
                     headers: {
                         "Content-Type": "application/json",
@@ -210,7 +218,8 @@
                     return
                 } else {
                     this.infolist.opTime = this.$formatDate(new Date(), "YYYY-MM-DD");
-                    this.infolist.endTime = this.infolist.endTime?this.$formatDate(this.infolist.endTime, "YYYY-MM-DD"):'';
+                    this.infolist.endTime = this.infolist.endTime ? this.$formatDate(this.infolist.endTime,
+                        "YYYY-MM-DD") : '';
                     if (this.titname === '添加') {
                         this.submitInfo("/market/cAdvPubSupplier/add");
                     } else if (this.titname === '修改') {
@@ -301,11 +310,19 @@
             },
             getUser() {
                 this.userInfo = JSON.parse(window.sessionStorage.userInfo);
-
+                this.params.homeLocation = '省公司';
+                this.searchList[0].value = '省公司';
+                let x = ['省公司', '七台河', '伊春', '佳木斯', '双鸭山', '哈尔滨', '大兴安岭', '大庆', '牡丹江', '绥化', '鸡西', '鹤岗', '黑河', '齐齐哈尔']
+                for (let i = 0; i < x.length; i++) {
+                    this.searchList[0].options.push({
+                        dataName: x[i],
+                        dataCode: x[i],
+                    })
+                }
+                this.getList(this.params, 1);
             }
         },
         mounted() {
-            this.getList({}, 1);
             this.getUser();
         },
         created() {

+ 47 - 13
src/pages/main/advReleaseAppro/index.vue

@@ -4,10 +4,10 @@
             <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
             <div style="overflow: hidden;">
                 <el-button style="float: right;margin-top: 10px;" type="primary" @click="dialogCheck(3)">添加</el-button>
-               <!-- <el-button style="float: right;margin-top: 10px;margin-right: 20px;" type="primary"
-                    @click="getStanding(1)">供应商管理</el-button> -->
-                <el-button style="float: right;margin-top: 10px;margin-right: 10px;" type="primary"
-                    @click="getStanding(2)">预算及上限</el-button>
+               <el-button style="float: right;margin-top: 10px;margin-right: 20px;" type="primary"
+                    @click="getStanding(1)" v-if="companyFlag == 0">供应商维护表</el-button>
+                <!-- <el-button style="float: right;margin-top: 10px;margin-right: 10px;" type="primary"
+                    @click="getStanding(2)">预算及上限</el-button> -->
             </div>
             <div class="tabbox">
                 <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
@@ -112,6 +112,7 @@
                             </el-input>
                         </el-form-item>
                     </div>
+
                     <div class="info-line" v-if="woTypeCode == 4">
                         <el-form-item>
                             <span>品牌及内容</span>
@@ -127,6 +128,15 @@
                         </el-form-item>
                     </div>
 
+                    <div class="info-line">
+                        <el-form-item>
+                            <span>税率</span>
+                            <el-input v-model="infolist.taxRate" placeholder="税率"
+                                :disabled="disableStatus">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+
                     <myinternet v-if="woTypeCode == 1" :titname='titname' :vision='vision' @backsum="backsum"
                         :infodatas="infodatas" :status="status" :allSumnum="allSum"></myinternet>
                     <television v-if="woTypeCode == 2" :titname='titname' :vision='vision' @backsum="backsum"
@@ -225,22 +235,20 @@
                 </el-table-column>
                 <el-table-column prop="supplierName" label="供应商">
                 </el-table-column>
-                <el-table-column prop="supplierCode" label="供应商编码">
+                <el-table-column prop="supplierCode" label="合同编码">
                 </el-table-column>
                 <el-table-column prop="contractName" label="合同名称">
                 </el-table-column>
                 <el-table-column prop="frameSum" label="框架总额">
                 </el-table-column>
-                <el-table-column prop="surplusSum" label="预算剩余额度">
-                </el-table-column>
-                <el-table-column prop="taxRate" label="合同税率">
-                </el-table-column>
-                <el-table-column prop="endTime" label="截止时间">
-                </el-table-column>
                 <el-table-column prop="frameSurplusSum" label="框架剩余总额">
                 </el-table-column>
                 <el-table-column prop="budgetSum" label="预算总额">
                 </el-table-column>
+                <el-table-column prop="surplusSum" label="预算剩余额度">
+                </el-table-column>
+                <el-table-column prop="endTime" label="截止时间">
+                </el-table-column>
             </el-table>
             <div class="t-footer" style="text-align: right;margin-top: 20px;">
                 <el-button type="primary" @click="suppliercheck(1)">确 定</el-button>
@@ -393,6 +401,7 @@
                 attList: [],
                 options: [],
                 terminal: '729291034548674560',
+                // terminal: '754971596344848384',//需求发起人流程
                 // terminal: '724514662710046720',
                 remark: '',
                 visionsts: '1',
@@ -466,6 +475,7 @@
             //选择供应商
             boxcho(v) {
                 this.suppinfo = v.row;
+                this.infolist.partyB = this.suppinfo.supplierName
                 for (let i = 0; i < this.suppList.length; i++) {
                     this.suppList[i].sts = false;
                 }
@@ -475,6 +485,7 @@
             suppliercheck(v) {
                 if (v == 2) {
                     this.suppinfo = {};
+                    this.infolist.partyB = '';
                 }
                 this.suppliersts = false;
             },
@@ -489,7 +500,7 @@
                 this.pageSize = n;
                 let _this = this;
                 this.loading = true;
-                v.procName = "广告发布申请流程(省)";
+                v.procName = "广告发布申请流程(省),广告发布申请流程";
                 this.$http({
                     url: "/bpm/api/queryToDoAndFinishTaskList",
                     method: "post",
@@ -559,6 +570,12 @@
                     this.infolist.opNo = infolist.opNo;
                     this.infolist.opTime = infolist.opTime;
                     this.infolist.woNo = infolist.woNo;
+                    if (res.data.taskList[res.data.taskList.length - 1].taskName == '需求发起') {
+                        this.vision = '流程发起';
+                        if (this.titname == '审批') {
+                            this.disableStatus = false;
+                        }
+                    }
                     if (res.data.taskList[res.data.taskList.length - 1].taskName == '流程发起') {
                         this.vision = '流程发起';
                         if (this.titname == '审批') {
@@ -573,6 +590,9 @@
                     } else if (res.data.taskList[res.data.taskList.length - 1].taskName == '总经理审批') {
                         this.vision = '总经理审批';
                         this.visionsts = '2';
+                    } else if (res.data.taskList[res.data.taskList.length - 1].taskName == '宣传负责人审批') {
+                        this.vision = '宣传负责人审批';
+                        this.visionsts = '2';
                     } else if (res.data.taskList[res.data.taskList.length - 1].taskName == '上刊用印') {
                         this.vision = '上刊用印';
                     }
@@ -682,7 +702,7 @@
                         param.params.assigneeNo = this.opno;
                         param.params.assigneeName = this.opname;
                     }
-                    if (this.vision == '三级经理审批' || this.vision == '二级经理审批') {
+                    if (this.vision == '三级经理审批' || this.vision == '二级经理审批' || this.vision == '宣传负责人审批') {
                         param.params.assigneeNo = this.treeListonly.leaderAuditNo;
                         param.params.assigneeName = this.treeListonly.leaderAuditName;
                     }
@@ -983,6 +1003,20 @@
                 }).then((res) => {
                     this.companyFlag = res.data.companyFlag;
                 });
+                 this.$http({
+                    url: "/market/cAdvPubWo/isXqfq",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {},
+                }).then((res) => {
+                    if(res.data.body == 1){
+                        this.terminal='754971596344848384'
+                    }else{
+                        this.terminal='729291034548674560'
+                    }
+                });
             }
         },
         mounted() {

+ 1 - 1
src/pages/main/advReleaseAppro/internet.vue

@@ -47,7 +47,7 @@
 				</template>
 			</el-table-column>
 
-			<el-table-column prop="terminal_type" label="pc/wep/app/SEM" width="200">
+			<el-table-column prop="terminal_type" label="pc/wap/app/SEM" width="200">
 				<template slot-scope="scope">
 					<el-input v-model="scope.row.terminalType" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
 				</template>

+ 32 - 3
src/pages/main/businessOutsourc/stageSeat.vue

@@ -149,7 +149,10 @@
             :modal-append-to-body="false" :close-on-click-modal="false">
             <el-form style="height: 50vh;overflow-y: scroll;">
                 <div class="treeUserp">
-                    <p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)">{{item.loginNameStr}}</p>
+					<p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)" v-if="item.loginNameStr">
+					    {{item.groupName}} -
+					    {{item.loginNameStr}}
+					</p>
                 </div>
             </el-form>
         </el-dialog>
@@ -342,7 +345,7 @@
                 }
             },
             fzperson(v) {
-                this.fadept = v;
+                this.fadept= v;
                 this.dialogStatusp = true;
                 this.$http({
                     url: "/sysmgr/sysuserinfo/queryList",
@@ -354,7 +357,33 @@
                         groupId: v.o,
                     },
                 }).then((res) => {
-                    this.treeListponly = res.data;
+                   this.treeListponly = res.data;
+                });
+                this.$http({
+                    url: "/sysmgr/csysdept/queryRegionDeptList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        parentorgid: v.o,
+                    },
+                }).then((res) => {
+                   res.data.forEach(item=>{
+                       this.$http({
+                           url: "/sysmgr/sysuserinfo/queryList",
+                           method: "post",
+                           headers: {
+                               "Content-Type": "application/json",
+                           },
+                           data: {
+                               groupId: item.o,
+                           },
+                       }).then((ress) => {
+                          this.treeListponly.push({bumen:item.ou})
+                          this.treeListponly=this.treeListponly.concat(ress.data);
+                       });
+                   })
                 });
             },
             deletest(val, index) {

+ 32 - 3
src/pages/main/marketSchedul/trainingPlan.vue

@@ -143,7 +143,10 @@
             :modal-append-to-body="false" :close-on-click-modal="false">
             <el-form style="height: 50vh;overflow-y: scroll;">
                 <div class="treeUserp">
-                    <p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)">{{item.loginNameStr}}</p>
+					<p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)" v-if="item.loginNameStr">
+					    {{item.groupName}} -
+					    {{item.loginNameStr}}
+					</p>
                 </div>
             </el-form>
         </el-dialog>
@@ -336,7 +339,7 @@
                 });
             },
             fzperson(v) {
-                this.fadept = v;
+                this.fadept= v;
                 this.dialogStatusp = true;
                 this.$http({
                     url: "/sysmgr/sysuserinfo/queryList",
@@ -348,7 +351,33 @@
                         groupId: v.o,
                     },
                 }).then((res) => {
-                    this.treeListponly = res.data;
+                   this.treeListponly = res.data;
+                });
+                this.$http({
+                    url: "/sysmgr/csysdept/queryRegionDeptList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        parentorgid: v.o,
+                    },
+                }).then((res) => {
+                   res.data.forEach(item=>{
+                       this.$http({
+                           url: "/sysmgr/sysuserinfo/queryList",
+                           method: "post",
+                           headers: {
+                               "Content-Type": "application/json",
+                           },
+                           data: {
+                               groupId: item.o,
+                           },
+                       }).then((ress) => {
+                          this.treeListponly.push({bumen:item.ou})
+                          this.treeListponly=this.treeListponly.concat(ress.data);
+                       });
+                   })
                 });
             },
             deletest(val, index) {

+ 70 - 0
src/pages/main/memberFamily/empInfoFilling.vue

@@ -258,6 +258,76 @@
                 } else if (v == 2) {
                     url = "/market/cMemberFillDetail/del"
                 }
+                if(!n.row.memberRelation){
+                    this.$message({
+                        message: '请填写成员关系',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.memberName){
+                    this.$message({
+                        message: '请填写成员姓名',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.memberSex){
+                    this.$message({
+                        message: '请填写成员性别',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.idCard){
+                    this.$message({
+                        message: '请填写成员身份证号',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.partyGroup){
+                    this.$message({
+                        message: '请填写成员政治面貌',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.workUnit){
+                    this.$message({
+                        message: '请填写成员工作单位',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.memberTel){
+                    this.$message({
+                        message: '请填写成员联系电话',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.memberAddress){
+                    this.$message({
+                        message: '请填写成员联系地址',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.interiorStaff){
+                    this.$message({
+                        message: '请填写是否移动系统内工作',
+                        type: 'error'
+                    });
+                    return
+                }
+                if(!n.row.staffName){
+                    this.$message({
+                        message: '请填写系统内员工职务',
+                        type: 'error'
+                    });
+                    return
+                }
                 this.$http({
                     url: url,
                     method: "post",

+ 32 - 3
src/pages/main/memberFamily/haveInHand.vue

@@ -110,7 +110,10 @@
             :modal-append-to-body="false" :close-on-click-modal="false">
             <el-form :model="infolist" ref="infolist" style="height: 50vh;overflow-y: scroll;">
                 <div class="treeUserp">
-                    <p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)">{{item.loginNameStr}}</p>
+					<p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)" v-if="item.loginNameStr">
+					    {{item.groupName}} -
+					    {{item.loginNameStr}}
+					</p>
                 </div>
             </el-form>
         </el-dialog>
@@ -281,7 +284,7 @@
                 }
             },
             fzperson(v) {
-                this.fadept = v;
+                this.fadept= v;
                 this.dialogStatusp = true;
                 this.$http({
                     url: "/sysmgr/sysuserinfo/queryList",
@@ -293,7 +296,33 @@
                         groupId: v.o,
                     },
                 }).then((res) => {
-                    this.treeListponly = res.data;
+                   this.treeListponly = res.data;
+                });
+                this.$http({
+                    url: "/sysmgr/csysdept/queryRegionDeptList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        parentorgid: v.o,
+                    },
+                }).then((res) => {
+                   res.data.forEach(item=>{
+                       this.$http({
+                           url: "/sysmgr/sysuserinfo/queryList",
+                           method: "post",
+                           headers: {
+                               "Content-Type": "application/json",
+                           },
+                           data: {
+                               groupId: item.o,
+                           },
+                       }).then((ress) => {
+                          this.treeListponly.push({bumen:item.ou})
+                          this.treeListponly=this.treeListponly.concat(ress.data);
+                       });
+                   })
                 });
             },
             deletes(val, index) {

+ 47 - 9
src/pages/main/memberFamily/index.vue

@@ -45,14 +45,14 @@
 				    </deptTree>
 				    <div :class="!disableStatus?'tree treeUser':'tree treeUserb'">
 				        <p v-for="(item,index) in treeList" :key="index">{{item.receiveName}}
-				            <i @click="deletes(item,index)" class="el-icon-error"></i>
+				            <i @click="deletess(item,index)" class="el-icon-error"></i>
 				        </p>
 				    </div>
 				</el-form-item>
 				<el-form-item class="info-line online">
 				    <span>负责人</span>
 					<div class="tree treeUser" style="width: 30%;margin-right: 1%;">
-					    <p v-for="(item,index) in deptList" :key="index" @click="choseDept(item)">{{item.ou}}</p>
+					    <p v-for="(item,index) in deptList" :key="index" @click="choseDepta(item)">{{item.ou}}</p>
 					</div>
 					<div :class="!disableStatus?'tree treeUser':'tree treeUserb'" style="width: 30%;margin-right: 1%;">
 					    <p v-for="(item,index) in treeListp" :key="index">
@@ -76,7 +76,10 @@
 			:modal-append-to-body="false" :close-on-click-modal="false">
 			<el-form :model="infolist" ref="infolist" style="height: 50vh;overflow-y: scroll;">
 				<div class="treeUserp">
-				    <p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)">{{item.loginNameStr}}</p>
+				    <p v-for="(item,index) in treeListponly" :key="index" @click="chofz(item)" v-if="item.loginNameStr">
+                        {{item.groupName}} -
+                        {{item.loginNameStr}}
+                    </p>
 				</div>
 			</el-form>
 		</el-dialog>
@@ -224,27 +227,62 @@
 			fzperson(v){
 				this.fadept= v;
 				this.dialogStatusp = true;
+                this.$http({
+                    url: "/sysmgr/sysuserinfo/queryList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {
+                        groupId: v.o,
+                    },
+                }).then((res) => {
+                   this.treeListponly = res.data;
+                });
 				this.$http({
-				    url: "/sysmgr/sysuserinfo/queryList",
+				    url: "/sysmgr/csysdept/queryRegionDeptList",
 				    method: "post",
 				    headers: {
 				        "Content-Type": "application/json",
 				    },
 				    data: {
-				        groupId: v.o,
+				        parentorgid: v.o,
 				    },
 				}).then((res) => {
-				   this.treeListponly = res.data;
+                   res.data.forEach(item=>{
+                       this.$http({
+                           url: "/sysmgr/sysuserinfo/queryList",
+                           method: "post",
+                           headers: {
+                               "Content-Type": "application/json",
+                           },
+                           data: {
+                               groupId: item.o,
+                           },
+                       }).then((ress) => {
+                          this.treeListponly.push({bumen:item.ou})
+                          this.treeListponly=this.treeListponly.concat(ress.data);
+                       });
+                   })
 				});
 			},
-			deletes(val, index) {
+			deletess(val, index) {
+                this.closeList = [];
+                for (var i = 0; i < this.treeList.length; i++) {
+                    if (this.treeList[i] == val) {
+                        // this.treeList.splice(i, 1);
+                    } else {
+                        this.closeList.push(this.treeList[i]);
+                    }
+                }
+			},
+            deletes(val, index) {
 			    this.treeListp.splice(index, 1);
-			    this.closeList = this.treeListp;
 			},
 			treeCheck(v){
 			    this.treeList = v;
 			},
-			choseDept(v){
+			choseDepta(v){
 				let x = 'no';
 				for (let i = 0; i < this.treeListp.length; i++) {
 					if(this.treeListp[i].o == v.o){

+ 8 - 12
src/pages/main/terminal/advcheck.vue

@@ -15,9 +15,9 @@
                     </el-table-column>
                     <el-table-column prop="advTitle" label="工单标题">
                     </el-table-column>
-                    <el-table-column prop="opName" label="发起人">
+                    <el-table-column prop="opNo" label="发起人">
                     </el-table-column>
-                    <el-table-column prop="opNo" label="发起人姓名">
+                    <el-table-column prop="opName" label="发起人姓名">
                     </el-table-column>
                     <el-table-column prop="opTime" label="发起时间">
                     </el-table-column>
@@ -26,9 +26,9 @@
                     <el-table-column label="操作" width="120px" align="center">
                         <template slot-scope="scope">
                             <el-button size="mini" type="primary" @click="dialogCheck(scope.row,1)">查看</el-button>
-                            <el-button size="mini" :disabled="!btnctrlStatus" v-if="advstatus == '0'" type="danger"
+                            <el-button size="mini" type="danger" v-if="userInfo.loginName != scope.row.opName"
                                 @click="dialogCheck(scope.row,2)">审核</el-button>
-                            <el-button v-if="advstatus == '1'" size="mini" type="primary" @click="advSure(scope.row)">定稿
+                            <el-button v-if="scope.row.advType == '02'&&scope.row.sts!='2'" size="mini" type="primary" @click="advSure(scope.row)">归档
                             </el-button>
                         </template>
                     </el-table-column>
@@ -37,7 +37,7 @@
                     :total="total">
                 </el-pagination>
             </div>
-            <el-dialog title="广告管理" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
+            <el-dialog title="广告管理" :visible.sync="dialogStatus" width="80%" :destroy-on-close="true"
                 :modal-append-to-body="false" :close-on-click-modal="false">
                 <div>
 
@@ -103,10 +103,7 @@
                 advopt: [{
                     id: '0',
                     name: '待审批',
-                }, {
-                    id: '1',
-                    name: '设计中',
-                }, {
+                },{
                     id: '2',
                     name: '定稿',
                 }, ],
@@ -242,11 +239,10 @@
                     }
                 }
             },
-            getUser() {
-                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
-            }
         },
         mounted() {
+            this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+            console.log(this.userInfo)
             this.advstatus = this.$route.query.type;
             this.getList({}, 1);
             this.ctrlbtn();

+ 329 - 0
src/pages/main/terminal/advdetailed.vue

@@ -0,0 +1,329 @@
+<template>
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <toolList :tooltit='tooltit'></toolList>
+            <div class="search">
+				<mySearch :searchList="searchList" @searchInfo="searchInfo"></mySearch>
+                <el-button class="btn-check" size="medium" type="primary" @click="outlist">导出
+                </el-button>
+            </div>
+            <div class="tabbox">
+                <table cellspacing='0' style="width: auto;">
+                    <tr>
+                        <th colspan="8">广告设计费</th>
+                    </tr>
+                    <tr>
+                        <th>序号</th>
+                        <th>文件编号</th>
+                        <th>文件名称</th>
+                        <th>提供物料</th>
+                        <th>折后单价(含税,元)</th>
+                        <th>数量</th>
+                        <th>结算费用(含税,元)</th>
+                    </tr>
+                    <tr v-for="(item,index) in tabList">
+                        <td>
+                            <div style="text-align: left">{{index+1}}</div>
+                        </td>
+                        <td>
+                            <div style="text-align: left;">{{item.code}}</div>
+                        </td>
+                        <td>
+                            <div style="text-align: left;">{{item.name}}</div>
+                        </td>
+                        <td>
+                            <div class="tab-f" style="text-align: left;" v-for="items in item.supplies">{{items}}</div>
+                        </td>
+                        <td>
+                            <div class="tab-f" style="text-align: left;" v-for="items in item.price">{{items}}</div>
+                        </td>
+                        <td>
+                            <div class="tab-f" style="text-align: left;" v-for="items in item.num">{{items}}</div>
+                        </td>
+                        <td>
+                            <div class="tab-f" style="text-align: left;" v-for="items in item.totalPrice">{{items}}</div>
+                        </td>
+                        <!-- <td rowspan="11" v-if="index == 0">
+                            <el-input v-model="factoryName" :disabled="disableStatus"
+                                style="text-align: left;width: 200px;">
+                            </el-input>
+                        </td> -->
+                    </tr>
+                </table>
+                <div style="text-align: right;padding-top: 10px;padding-right: 20px;">
+                    <span style="margin-right: 20px;">合计数量:{{allNum}}</span>
+                    <span>结算费用:{{allPrice}}</span>
+                </div>
+            </div>
+        </div>
+    </fullscreen>
+</template>
+<script>
+    import mySearch from "../../../components/search.vue";
+    import toolList from "../../../components/toolList.vue";
+
+    export default {
+        components: {
+            mySearch,
+            toolList
+        },
+        data() {
+
+            return {
+				searchList: [{
+					type: 'input',
+					tit: '供应商名称',
+					value: '',
+					width: '98%',
+				},
+    //             {
+				// 	type: 'date',
+				// 	tit: '开始时间',
+				// 	value: '',
+				// 	width: '32%',
+				// }, {
+				// 	type: 'date',
+				// 	tit: '结束时间',
+				// 	value: '',
+				// 	width: '32%',
+				// },
+                ],
+                tooltit: '广告设计费明细',
+                fullscreen: false,
+                total: 0,
+                pageSize: 1,
+                tableData: [],
+                dialogStatus: false,
+                disableStatus: false,
+                titname: '终端',
+                infolist: {},
+                typeOptions: [{
+                    dataCode: 1,
+                    dataName: 111,
+                }],
+                userInfo: {},
+                params: {},
+                infoApply: [],
+                tabList:[
+                    // {
+                    //     code:11,
+                    //     name:'cs1',
+                    //     supplies:["aaa","bbb","ccc"],
+                    //     price:["11","22","33"],
+                    //     num:["5","6","7"],
+                    //     totalPrice:["55","132","231"],
+                    // },{
+                    //     code:11,
+                    //     name:'cs1',
+                    //     supplies:["aaa","bbb","ccc"],
+                    //     price:["11","22","33"],
+                    //     num:["5","6","7"],
+                    //     totalPrice:["55","132","231"],
+                    // },
+                ],
+                allPrice:0,
+                allNum:0,
+            }
+        },
+        methods: {
+			//搜索数据
+			searchInfo(v) {
+				this.params = {};
+				v[0] ? this.params.supplier = v[0] : '';
+				v[1] ? this.params.contractStartTimeFrom = this.$formatDate(v[1] , "YYYY-MM-DD") : '';
+				v[2] ? this.params.contractStartTimeTo = this.$formatDate(v[2] , "YYYY-MM-DD") : '';
+				this.getList(this.params, this.pageSize);
+			},
+            //获取列表
+            getList(v, n) {
+                this.pageSize = n;
+                let _this = this;
+                this.$http({
+                    url: "/market/designSupplier/queryList",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tabList = res.data;
+                    for(let i=0;i<this.tabList.length;i++){
+                        for(let j=0;j<this.tabList[i].num.length;j++){
+                            this.allNum += this.tabList[i].num[j]*1
+                        }
+                        for(let j=0;j<this.tabList[i].totalPrice.length;j++){
+                            this.allPrice += this.tabList[i].totalPrice[j]*1
+                        }
+                    }
+                });
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+
+            // =======================
+            outlist() {
+                this.$http({
+                    url: "/market/DesignSupplier/download",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    responseType: "blob",
+                    data: {supplier:this.params.supplier},
+                }).then((response) => {
+                    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
+                        let blob = new Blob([response.data], {
+                            type: 'application/vnd.ms-excel'
+                        })
+                        window.navigator.msSaveOrOpenBlob(blob,
+                            new Date().getTime() + '.xlsx')
+                    } else {
+                        /* 火狐谷歌的文件下载方式 */
+                        var blob = new Blob([response.data])
+                        var downloadElement = document.createElement('a')
+                        var href = window.URL.createObjectURL(blob)
+                        downloadElement.href = href
+                        downloadElement.download = new Date().getTime() + '.xlsx'
+                        document.body.appendChild(downloadElement)
+                        downloadElement.click()
+                        document.body.removeChild(downloadElement)
+                        window.URL.revokeObjectURL(href)
+                    }
+                });
+            },
+            getUser() {
+                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+                this.infolist = {
+                    opNo: '',
+                    opName: '',
+                };
+                this.infolist.opNo = this.userInfo.loginNo;
+                this.infolist.opName = this.userInfo.loginName;
+
+            }
+        },
+        mounted() {
+            this.getList({}, 1);
+            this.getUser();
+        },
+        created() {
+
+        }
+    }
+</script>
+<style scoped lang="scss">
+    .onetab {
+        margin-bottom: 20px;
+        padding: 0 20px;
+    }
+
+    .titbox {
+        div {
+            float: right;
+
+            i {
+                font-size: 22px;
+                margin-left: 20px;
+                cursor: pointer;
+            }
+        }
+    }
+
+
+    .pageBox {
+        text-align: right;
+        margin-top: 10px;
+    }
+
+    .info-line {
+        width: 100%;
+        display: block;
+        padding-left: 20px;
+
+        div {
+            width: 50%;
+            display: inline-block;
+        }
+
+        span {
+            width: 80px;
+            display: inline-block;
+            text-align: left;
+
+            i {
+                color: red;
+                display: inline-block;
+                padding-right: 5px;
+            }
+        }
+
+        .el-select,
+        .el-input {
+            width: calc(100% - 100px);
+        }
+    }
+
+    .online {
+        width: 100%;
+
+        .el-select {
+            width: calc(100% - 100px);
+        }
+
+        span {
+            vertical-align: top;
+        }
+
+        .el-textarea {
+            width: calc(100% - 100px);
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+        height: calc(100vh - 300px);
+        overflow-y: scroll;
+
+        table {
+            border-bottom: 1px solid #ddd;
+            border-right: 1px solid #ddd;
+            text-align: center;
+            width: 100%!important;
+        }
+
+        tr {
+            // width: 100%;
+        }
+
+        th {
+            border: 1px solid #ddd;
+            border-bottom: 0;
+            border-right: 0;
+            padding: 5px 10px;
+            font-size: 14px;
+        }
+
+        td {
+            border: 1px solid #ddd;
+            border-bottom: 0;
+            border-right: 0;
+            // padding: 5px 10px;
+            font-size: 12px;
+            width: 10%;
+            div{
+                padding-left: 10px;
+            }
+        }
+    }
+    .tab-f{
+        padding: 10px 0;
+        border-bottom: 1px solid #ddd;
+    }
+    .tab-f:last-child{
+        border-bottom: 0;
+    }
+</style>

+ 359 - 207
src/pages/main/terminal/advertincrease.vue

@@ -5,204 +5,293 @@
                 <h2 style="display: block;margin-bottom: 20px;">广告申请</h2>
                 <div style="height: calc(100% - 160px);overflow-y: scroll;">
                     <div class="info-line">
-                        <el-form-item prop="terminalTypeName">
-                            <span>申请标题</span>
-                            <el-input v-model="infolist.tit" placeholder="申请标题" :disabled="disableStatus"></el-input>
+                        <el-form-item prop="tit">
+                            <span>文件标题</span>
+                            <el-input v-model="infolist.tit" placeholder="文件标题" :disabled="disableStatus"></el-input>
                         </el-form-item>
-                        <el-form-item>
-                            <span>素材类型</span>
-                            <el-select :popper-append-to-body="false" clearable v-model="infolist.materType" placeholder="素材类型">
-                                <el-option v-for="items in materTypeopt" :key="items.dataCode" :label="items.dataName"
-                                    :value="items.dataCode">
+                        <el-form-item prop="dept">
+                            <span>申请部门</span>
+                            <el-input v-model="infolist.dept" placeholder="申请部门"></el-input>
+                            <!-- <el-select clearable v-model="infolist.dept" placeholder="申请部门">
+                                <el-option v-for="items in terminalopt" :key="items.procId" :label="items.procName"
+                                    :value="items.procId">
                                 </el-option>
-                            </el-select>
+                            </el-select> -->
                         </el-form-item>
-                        <!-- <el-form-item>
-                            <span>申请流程</span>
-                            <el-select disabled clearable v-model="terminal" placeholder="申请流程">
-                                <el-option v-for="items in options" :key="items.procId" :label="items.procName" :value="items.procId">
-                                </el-option>
-                            </el-select>
+                        <el-form-item prop="opName">
+                            <span>申请人</span>
+                            <el-input v-model="infolist.opName" placeholder="申请人"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="phone">
+                            <span>联系电话</span>
+                            <el-input v-model="infolist.phone" placeholder="联系电话"></el-input>
+                        </el-form-item>
+                        <!-- <el-form-item prop="time">
+                            <span>申请时间</span>
+                            <el-date-picker v-model="infolist.time" type="date" placeholder="申请时间">
+                            </el-date-picker>
                         </el-form-item> -->
-                    </div>
-                    <!-- <div class="info-line">
-                            <el-form-item prop="opNo">
-                                <span>申请部门</span>
-                                <el-select clearable v-model="infolist.dept" placeholder="申请部门">
-                                    <el-option v-for="items in terminalopt" :key="items.procId" :label="items.procName"
-                                        :value="items.procId">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item prop="opNo">
-                                <span>申请人</span>
-                                <el-input v-model="infolist.opName" placeholder="申请人"></el-input>
-                            </el-form-item>
-                        </div>
-                        <div class="info-line">
-                           <el-form-item>
-                                <span>申请时间</span>
-                                <el-date-picker v-model="infolist.time" type="date" placeholder="申请时间">
-                                </el-date-picker>
-                            </el-form-item>
-                            <el-form-item prop="opNo">
-                                <span>联系电话</span>
-                                <el-input v-model="infolist.phone" placeholder="联系电话"></el-input>
-                            </el-form-item>
-                        </div> -->
-
-                    <div class="info-line">
-                        <el-form-item>
+                        <el-form-item prop="num">
+                            <span>文件编号</span>
+                            <el-input v-model="infolist.num" placeholder="文件编号" :disabled="disableStatus"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="overtime">
                             <span>完成时间</span>
                             <el-date-picker v-model="infolist.overtime" type="date" placeholder="完成时间">
                             </el-date-picker>
                         </el-form-item>
-                        <el-form-item>
+                        <el-form-item prop="urgent">
                             <span>紧急程度</span>
-                            <el-select :popper-append-to-body="false" clearable v-model="infolist.fire" placeholder="紧急程度">
+                            <el-select :popper-append-to-body="false" clearable v-model="infolist.urgent"
+                                placeholder="紧急程度">
                                 <el-option v-for="items in fireopt" :key="items.dataCode" :label="items.dataName"
                                     :value="items.dataCode">
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                    </div>
-                    <div class="info-line">
-                        <el-form-item>
-                            <span>业务名称</span>
-                            <el-input v-model="infolist.workname" placeholder="业务名称"></el-input>
-                        </el-form-item>
-                        <el-form-item>
-                            <span>分类</span>
-                            <el-select :popper-append-to-body="false" clearable v-model="infolist.type" placeholder="分类">
-                                <el-option v-for="items in typeopt" :key="items.dataCode" :label="items.dataName"
-                                    :value="items.dataCode">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                    </div>
-                    <div class="info-line">
-                        <el-form-item>
-                            <span>内容</span>
-                            <el-input v-model="infolist.info" placeholder="内容"></el-input>
-                        </el-form-item>
-                        <el-form-item>
-                            <span>推广渠道</span>
-                            <el-select :popper-append-to-body="false" clearable v-model="infolist.extension" placeholder="推广渠道">
-                                <el-option v-for="items in extensionopt" :key="items.dataCode" :label="items.dataName"
+                        <el-form-item prop="materType">
+                            <span>素材类型</span>
+                            <el-select :popper-append-to-body="false" clearable v-model="infolist.materType"
+                                placeholder="素材类型">
+                                <el-option v-for="items in materTypeopt" :key="items.dataCode" :label="items.dataName"
                                     :value="items.dataCode">
                                 </el-option>
                             </el-select>
                         </el-form-item>
                     </div>
 
-                    <el-form-item class="info-line online">
-                        <span>简易设计</span>
-                        <el-checkbox-group v-model="infolist.esay">
-                            <el-checkbox v-for="items in esayopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>宣传画面</span>
-                        <el-checkbox-group v-model="infolist.picter">
-                            <el-checkbox v-for="items in picteropt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>媒介</span>
-                        <el-checkbox-group v-model="infolist.medium">
-                            <el-checkbox v-for="items in mediumopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>产品</span>
-                        <el-checkbox-group v-model="infolist.product">
-                            <el-checkbox v-for="items in productopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>文案类</span>
-                        <el-checkbox-group v-model="infolist.copywriting">
-                            <el-checkbox v-for="items in copywritingopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>视频动画</span>
-                        <el-checkbox-group v-model="infolist.video">
-                            <el-checkbox v-for="items in videoopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>全案</span>
-                        <el-checkbox-group v-model="infolist.all">
-                            <el-checkbox v-for="items in allopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>监测服务</span>
-                        <el-checkbox-group v-model="infolist.testing">
-                            <el-checkbox v-for="items in testingopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode"></el-checkbox>
-                          </el-checkbox-group>
-                    </el-form-item>
+                    <div class="tgqd">
+                        <span class="qd-tit">推广渠道</span>
+                        <div class="qd-box">
+                            <div class="zy">
+                                <span>自有渠道</span>
+                                <div style="display: flex;">
+                                    <el-checkbox-group v-model="checkList">
+                                        <el-checkbox label="实体渠道"></el-checkbox>
+                                        <el-checkbox label="门户网站"></el-checkbox>
+                                        <el-checkbox label="移动旗舰店app"></el-checkbox>
+                                        <el-checkbox label="官方网站"></el-checkbox>
+                                        <el-checkbox label="官方微信"></el-checkbox>
+                                        <el-checkbox label="电视营业厅(魔百和)"></el-checkbox>
+                                        <el-checkbox label="其他"></el-checkbox>
+                                    </el-checkbox-group>
+                                    <el-input v-model="checkList1" size="mini" style="margin-left: 20px;"></el-input>
+                                </div>
+                            </div>
+                            <div class="zy">
+                                <span>外部渠道</span>
+                                <div>
+                                    <el-checkbox-group v-model="checkList2">
+                                        <el-checkbox label="广播"></el-checkbox>
+                                        <el-checkbox label="电视"></el-checkbox>
+                                        <el-checkbox label="报纸"></el-checkbox>
+                                        <el-checkbox label="互联网"></el-checkbox>
+                                        <el-checkbox label="户外"></el-checkbox>
+                                        <el-checkbox label="社会渠道"></el-checkbox>
+                                        <el-checkbox label="手机卖场"></el-checkbox>
+                                    </el-checkbox-group>
+                                </div>
+                            </div>
+                            <div class="zy">
+                                <span style="width: 60px;text-align: right;">其他</span>
+                                <div>
+                                    <el-input v-model="checkList3" size="mini"></el-input>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
 
-                    <el-form-item class="info-line online">
-                        <span>其他</span>
-                        <el-input v-model="infolist.other" placeholder="其他"></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>活动描述</span>
-                        <el-input v-model="infolist.describe" placeholder="资费/产品/活动描述" type="textarea" :rows="3"></el-input>
+                    <el-form-item class="info-line online" prop="propaganda">
+                        <span>产品及卖点</span>
+                        <el-input v-model="infolist.propaganda" placeholder="产品及卖点" type="textarea" :rows="3">
+                        </el-input>
                     </el-form-item>
-                    <el-form-item class="info-line online">
+                    <el-form-item class="info-line online" prop="explain">
                         <span>宣传内容</span>
-                        <el-input v-model="infolist.propaganda" placeholder="广告宣传内容" type="textarea" :rows="3"></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>其他说明</span>
-                        <el-input v-model="infolist.explain" placeholder="设计稿内容描述" type="textarea" :rows="3"></el-input>
+                        <el-input v-model="infolist.explain" placeholder="宣传内容" type="textarea" :rows="3"></el-input>
                     </el-form-item>
                     <div style="padding-left: 80px">
-                        <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList"></myUpload>
+                        <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
+                        </myUpload>
                     </div>
                 </div>
                 <div class="t-footer">
-                    <el-button type="primary" @click="dialogCli(2)">确 定</el-button>
+                    <el-button type="primary" @click="checkexa = true">确 定</el-button>
                     <el-button @click="dialogCli(1)">取 消</el-button>
                 </div>
             </el-form>
         </div>
+        <el-dialog title="选择审批人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
+        	:modal-append-to-body="false" :close-on-click-modal="false">
+        	<div>
+
+        		<el-form :model="infolist" ref="infolist" :rules="rules">
+        			<el-form-item prop="visiblec" class="info-line online">
+        				<span>审批人员</span>
+        				<deptTreeOnly class="tree" @treeCheck="treeCheckonly" :defaultList="defaultList"
+        					:type="depttype" :closeList="closeList"></deptTreeOnly>
+        				<div class="tree treeUser">
+        					<p>{{treeListonly.leaderAuditName}}
+        						<i v-if="treeListonly.leaderAuditName" @click="deletes()"
+        							class="el-icon-error"></i>
+        					</p>
+        				</div>
+        			</el-form-item>
+        		</el-form>
+
+        		<div slot="footer" style="text-align: right;padding-bottom: 20px;">
+        			<el-button type="primary" @click="dialogCli(2)">确 定</el-button>
+        			<el-button @click="checkexa = false">取 消</el-button>
+        		</div>
+        	</div>
+        </el-dialog>
     </div>
 </template>
 <script>
     import mySearch from "../../../components/search.vue";
     import myUpload from "../../../components/upload.vue";
+    import deptTreeOnly from "../../../components/deptTreeOnly.vue"
 
     export default {
         components: {
             mySearch,
-            myUpload
+            myUpload,
+            deptTreeOnly
         },
         data() {
-            const terminalTypeName = (rule, value, callback) => {
+            const tit = (rule, value, callback) => {
                 if (!this.infolist.tit) {
                     callback(new Error('不能为空'))
                 } else {
                     callback()
                 }
             }
+            const dept = (rule, value, callback) => {
+                if (!this.infolist.dept) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const opName = (rule, value, callback) => {
+                if (!this.infolist.opName) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const phone = (rule, value, callback) => {
+                if (!this.infolist.phone) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const time = (rule, value, callback) => {
+                if (!this.infolist.time) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const num = (rule, value, callback) => {
+                if (!this.infolist.num) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const overtime = (rule, value, callback) => {
+                if (!this.infolist.overtime) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const urgent = (rule, value, callback) => {
+                if (!this.infolist.urgent) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const materType = (rule, value, callback) => {
+                if (!this.infolist.materType) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const propaganda = (rule, value, callback) => {
+                if (!this.infolist.propaganda) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const explain = (rule, value, callback) => {
+                if (!this.infolist.explain) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
             return {
                 rules: {
-                    terminalTypeName: [{
+                    tit: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: tit
+                    }],
+                    dept: [{
                         required: true,
                         trigger: 'blur',
-                        validator: terminalTypeName
+                        validator: dept
+                    }],
+                    opName: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: opName
+                    }],
+                    phone: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: phone
+                    }],
+                    time: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: time
+                    }],
+                    num: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: num
+                    }],
+                    overtime: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: overtime
+                    }],
+                    urgent: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: urgent
+                    }],
+                    materType: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: materType
+                    }],
+                    propaganda: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: propaganda
+                    }],
+                    explain: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: explain
                     }],
                 },
                 fullscreen: false,
@@ -219,74 +308,54 @@
                     time: '',
                     phone: '',
                     overtime: '',
-                    fire: '',
-                    workname: '',
-                    type: '',
-                    info: '',
-                    esay: [],
-                    picter: [],
-                    medium: [],
-                    product: [],
-                    copywriting: [],
-                    video: [],
-                    all: [],
-                    testing: [],
-                    other: '',
-                    extension: '',
-                    describe: '',
                     propaganda: '',
                     explain: '',
                 },
-                terminal:'688225294361509888',
+                terminal: '688225294361509888',
                 terminalopt: [{
                     procId: '111',
                     procName: '1111',
                 }],
-                typeOptions: [{
-                    dataCode: 1,
-                    dataName: 111,
-                }],
                 userInfo: {},
                 params: {},
                 infoApply: [],
                 options: [],
                 fireopt: [],
                 typeopt: [],
-                esayopt: [],
-                picteropt: [],
-                mediumopt: [],
-                productopt: [],
-                copywritingopt: [],
-                videoopt: [],
-                allopt: [],
-                testingopt: [],
-                otheropt: [],
-                extensionopt: [],
+
                 materTypeopt: [],
                 attList: [],
                 fileInfo: {
-                    type:'img',
+                    type: 'img',
                     limit: 50,
                     url: '/bpm/api/upload',
                     fileList: []
                 },
+                checkList:[],
+                checkList1:'',
+                checkList2:[],
+                checkList3:'',
+                checkexa: false,
+                treeListonly: {},
+                defaultList: [],
+                closeList: false,
+                visionchonly: false,
+                depttype: 0,
             }
         },
         methods: {
+            deletes() {
+            	this.treeListonly = {};
+            	this.closeList = !this.closeList;
+            },
+            treeCheckonly(v) {
+            	this.treeListonly = v;
+            },
             //添加
             dialogCli(v) {
                 if (v === 1) {
                     this.fileInfo.fileList = [];
-                    this.infolist = {
-                        esay: [],
-                        picter: [],
-                        medium: [],
-                        product: [],
-                        copywriting: [],
-                        video: [],
-                        all: [],
-                        testing: [],
-                    };
+                    this.infolist = {};
                     return
                 }
                 let _this = this;
@@ -295,11 +364,19 @@
                 info.opNo = this.userInfo.loginNo;
                 info.opName = this.userInfo.loginName;
                 info.woTitle = this.infolist.tit;
-                this.infolist.dept = '1000';
-                this.infolist.time =  info.opTime;
-                this.infolist.phone = '15804612345';
+
+                this.infolist.time = info.opTime;
+
                 info.params = {};
                 info.params.terminalRes = this.infolist;
+                for (let i = 0; i < this.checkList.length; i++) {
+                    this.checkList[i] == '其他';
+                    this.checkList[i]=this.checkList1;
+                }
+                info.params.terminalRes.checkList = this.checkList;
+                info.params.terminalRes.checkList2 = this.checkList2;
+                info.params.terminalRes.checkList3 = this.checkList3;
+
                 info.procId = this.terminal;
                 for (let i = 0; i < this.options.length; i++) {
                     if (this.terminal == this.options[i].procId) {
@@ -307,6 +384,7 @@
                         info.procVersion = this.options[i].procVersion;
                     }
                 }
+
                 let attList = [];
                 for (let i = 0; i < this.attList.length; i++) {
                     attList.push({
@@ -320,8 +398,13 @@
                         attchFileId: this.attList[i].attchFileId,
                     });
                 }
+
+                info.params.assigneeNo = this.treeListonly.leaderAuditNo;
+                info.params.assigneeName = this.treeListonly.leaderAuditName;
+
                 info.params.attList = JSON.stringify(attList)
                 info.params.terminalRes = JSON.stringify(info.params.terminalRes)
+
                 this.submitInfo("/bpm/api/startProc", info);
             },
             submitInfo(u, v) {
@@ -346,9 +429,13 @@
                                     message: '成功',
                                     type: 'success'
                                 });
-                                _this.infoApply = [];
-                                _this.getUser();
-                                _this.dialogCli(1);
+                                _this.$router.push({
+                                    path: "/advcheck",
+                                    query:{
+                                        type:0
+                                    }
+                                });
+                                _this.setabList("广告管理列表", "/advcheck?type="+0);
                             }
 
                         });
@@ -377,25 +464,19 @@
                         "Content-Type": "application/json",
                     },
                     data: {
-                        dictCodePks: 'materType,jjcd,ggfl,jysj,xchm,mj,cp,wal,spdhzz,qa,jkfw,tgqd'
+                        dictCodePks: 'materType,jjcd,tgqd'
                     },
                 }).then((res) => {
                     this.materTypeopt = res.data.body.materType;
                     this.fireopt = res.data.body.jjcd;
-                    this.typeopt = res.data.body.ggfl;
-                    this.esayopt = res.data.body.jysj;
-                    this.picteropt = res.data.body.xchm;
-                    this.mediumopt = res.data.body.mj;
-                    this.productopt = res.data.body.cp;
-                    this.copywritingopt = res.data.body.wal;
-                    this.videoopt = res.data.body.spdhzz;
-                    this.allopt = res.data.body.qa;
-                    this.testingopt = res.data.body.jkfw;
                     this.extensionopt = res.data.body.tgqd;
                 });
             },
             getUser() {
                 this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+                this.infolist.opName = this.userInfo.loginName
+                this.infolist.phone = this.userInfo.phoneNo
+                this.infolist.dept = this.userInfo.groupName
             },
             uploadBack(v) {
                 this.attList = v;
@@ -470,12 +551,13 @@
         .el-input {
             width: calc(100% - 100px);
         }
-        .el-checkbox-group{
+
+        .el-checkbox-group {
             border: 1px solid #ddd;
-                padding-left: 20px;
-                height: 40px;
-                width: calc(100% - 100px);
-                border-radius: 5px;
+            padding-left: 20px;
+            height: 40px;
+            width: calc(100% - 100px);
+            border-radius: 5px;
         }
     }
 
@@ -493,5 +575,75 @@
         .el-textarea {
             width: calc(100% - 100px);
         }
+        .tree {
+        	width: calc(50% - 60px);
+        	display: inline-block;
+        	margin-right: 20px;
+        	height: 300px;
+        	overflow-y: scroll;
+
+        	.el-icon-error {
+        		float: right;
+        		font-size: 20px;
+        		margin-top: 9px;
+        		cursor: pointer;
+        	}
+        }
+
+        .treeUser {
+        	margin: 0;
+        	border: 1px solid #ddd;
+
+        	p {
+        		background: #f4f4f4;
+        		padding: 0 20px;
+        		margin-bottom: 5px;
+        	}
+        }
+
+        .treeUserb {
+            width: calc(100% - 100px);
+            border: 1px solid #ddd;
+            background: #f4f4f4;
+            border-radius: 3px;
+            height: auto;
+            overflow: hidden;
+
+            p {
+                display: inline-block;
+                padding: 0 20px;
+                margin-bottom: 5px;
+            }
+        }
+    }
+
+    .tgqd {
+        margin-bottom: 20px;
+
+        .qd-tit {
+            display: inline-block;
+            width: 100px;
+            padding-left: 20px;
+            vertical-align: top;
+        }
+
+        .qd-box {
+            border: 1px solid #ddd;
+            border-radius: 5px;
+            display: inline-block;
+            width: calc(100% - 120px);
+            min-height: 120px;
+            .zy{
+                display: flex;
+                line-height: 40px;
+                span{
+                    display: inline-block;
+                    margin: 0 20px;
+                }
+                .el-input{
+                    width: 200px;
+                }
+            }
+        }
     }
 </style>

+ 12 - 3
src/pages/main/terminal/advertisement.vue

@@ -15,13 +15,16 @@
                         <i class="el-icon-time"></i>
                         <span>待审批 <em>{{info.approvalNum||0}}</em></span>
                     </div>
-                    <div class="adv-tit" @click="jumpadv('1')">
+                    <!-- <div class="adv-tit" @click="jumpadv('1')">
                         <i class="el-icon-loading"></i>
                         <span>设计中 <em>{{info.designNum||0}}</em></span>
-                    </div>
+                    </div> -->
                     <div class="adv-tit" @click="jumpadv('2')">
                         <i class="el-icon-notebook-1"></i>
-                        <span>定稿 <em>{{info.finalNum||0}}</em></span>
+                        <span>定稿 <em>{{info.designNum||0}}</em></span>
+                    </div>
+                    <div class="adv-tit" @click="jumpinfo">
+                        <span>广告设计费明细</span>
                     </div>
                     <div class="adv-tit adv-add" @click="advadd">
                         <i class="el-icon-plus"></i>
@@ -44,6 +47,12 @@
             }
         },
         methods: {
+            jumpinfo(){
+                this.$router.push({
+                    path: "/advdetailed",
+                });
+                this.setabList("广告设计费明细", "/advdetailed");
+            },
             advadd(){
                 this.$router.push({
                     path: "/advertincrease",

+ 187 - 148
src/pages/main/terminal/components/advert.vue

@@ -9,16 +9,17 @@
                     </el-form-item>
                     <el-form-item prop="brandName">
                         <span>申请流程</span>
-                        <el-input disabled v-model="infoApply.procName" placeholder="申请流程"></el-input>
+                        <el-input disabled v-model="infoApply.procName" placeholder="广告申请"></el-input>
                     </el-form-item>
                 </div>
                 <div class="info-line">
                     <el-form-item prop="opNo">
                         <span>申请部门</span>
-                        <el-select disabled clearable v-model="infoApply.dept" placeholder="申请部门">
+                        <el-input disabled v-model="infoApply.dept" placeholder="申请部门"></el-input>
+                       <!-- <el-select disabled clearable v-model="infoApply.dept" placeholder="申请部门">
                             <el-option v-for="items in terminalopt" :key="items.id" :label="items.ou" :value="items.id">
                             </el-option>
-                        </el-select>
+                        </el-select> -->
                     </el-form-item>
                     <el-form-item prop="opNo">
                         <span>申请人</span>
@@ -39,50 +40,24 @@
                 <div class="info-line">
                     <el-form-item>
                         <span>完成时间</span>
-                        <el-date-picker :disabled="!changeinfo" v-model="infoApply.overtime" type="date"
+                        <el-date-picker disabled v-model="infoApply.overtime" type="date"
                             placeholder="完成时间">
                         </el-date-picker>
                     </el-form-item>
                     <el-form-item>
                         <span>紧急程度</span>
-                        <el-select :disabled="!changeinfo" clearable v-model="infoApply.fire" placeholder="紧急程度">
+                        <el-select disabled clearable v-model="infoApply.urgent" placeholder="紧急程度">
                             <el-option v-for="items in fireopt" :key="items.dataCode" :label="items.dataName"
                                 :value="items.dataCode">
                             </el-option>
                         </el-select>
                     </el-form-item>
                 </div>
-                <div class="info-line">
-                    <el-form-item>
-                        <span>业务名称</span>
-                        <el-input :disabled="!changeinfo" v-model="infoApply.workname" placeholder="业务名称"></el-input>
-                    </el-form-item>
-                    <el-form-item>
-                        <span>分类</span>
-                        <el-select :disabled="!changeinfo" clearable v-model="infoApply.type" placeholder="分类">
-                            <el-option v-for="items in typeopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </div>
-                <div class="info-line">
-                    <el-form-item>
-                        <span>内容</span>
-                        <el-input :disabled="!changeinfo" v-model="infoApply.info" placeholder="内容"></el-input>
-                    </el-form-item>
-                    <el-form-item>
-                        <span>推广渠道</span>
-                        <el-select :disabled="!changeinfo" clearable v-model="infoApply.extension" placeholder="推广渠道">
-                            <el-option v-for="items in extensionopt" :key="items.dataCode" :label="items.dataName"
-                                :value="items.dataCode">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
 
+                <div class="info-line">
                     <el-form-item>
                         <span>素材类型</span>
-                        <el-select :disabled="!changeinfo" clearable v-model="infoApply.materType" placeholder="素材类型">
+                        <el-select disabled clearable v-model="infoApply.materType" placeholder="素材类型">
                             <el-option v-for="items in materTypeopt" :key="items.dataCode" :label="items.dataName"
                                 :value="items.dataCode">
                             </el-option>
@@ -90,127 +65,61 @@
                     </el-form-item>
                 </div>
 
-                <div v-if="changeinfo">
-                    <el-form-item class="info-line online">
-                        <span>简易设计</span>
-                        <el-checkbox-group v-model="infoApply.esay">
-                            <el-checkbox v-for="items in esayopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>宣传画面</span>
-                        <el-checkbox-group v-model="infoApply.picter">
-                            <el-checkbox v-for="items in picteropt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>媒介</span>
-                        <el-checkbox-group v-model="infoApply.medium">
-                            <el-checkbox v-for="items in mediumopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>产品</span>
-                        <el-checkbox-group v-model="infoApply.product">
-                            <el-checkbox v-for="items in productopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>文案类</span>
-                        <el-checkbox-group v-model="infoApply.copywriting">
-                            <el-checkbox v-for="items in copywritingopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>视频动画</span>
-                        <el-checkbox-group v-model="infoApply.video">
-                            <el-checkbox v-for="items in videoopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>全案</span>
-                        <el-checkbox-group v-model="infoApply.all">
-                            <el-checkbox v-for="items in allopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>监测服务</span>
-                        <el-checkbox-group v-model="infoApply.testing">
-                            <el-checkbox v-for="items in testingopt" :key="items.dataName" :label="items.dataName"
-                                :value="items.dataName"></el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                </div>
-                <div v-if="!changeinfo">
-                    <el-form-item class="info-line online">
-                        <span>简易设计</span>
-                        <el-input v-model="infoApply.esaystr" placeholder="简易设计" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>宣传画面</span>
-                        <el-input v-model="infoApply.picterstr" placeholder="宣传画面" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>媒介</span>
-                        <el-input v-model="infoApply.mediumstr" placeholder="媒介" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>产品</span>
-                        <el-input v-model="infoApply.productstr" placeholder="产品" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>文案类</span>
-                        <el-input v-model="infoApply.copywritingstr" placeholder="文案类" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>视频动画</span>
-                        <el-input v-model="infoApply.videostr" placeholder="视频动画" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>全案</span>
-                        <el-input v-model="infoApply.allstr" placeholder="全案" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item class="info-line online">
-                        <span>监测服务</span>
-                        <el-input v-model="infoApply.testingstr" placeholder="监测服务" disabled></el-input>
-                    </el-form-item>
-                </div>
 
-                <el-form-item class="info-line online">
-                    <span>其他</span>
-                    <el-input v-model="infoApply.other" placeholder="其他" :disabled="!changeinfo"></el-input>
+                <!-- <el-form-item class="info-line online">
+                    <span>自有渠道</span>
+                    <el-input disabled v-model="infoApply.checkList"></el-input>
                 </el-form-item>
                 <el-form-item class="info-line online">
-                    <span>活动描述</span>
-                    <el-input v-model="infoApply.describe" :disabled="!changeinfo" placeholder="资费/产品/活动描述"
-                        type="textarea" :rows="3"></el-input>
+                    <span>外部渠道</span>
+                    <el-input disabled v-model="infoApply.checkList2"></el-input>
                 </el-form-item>
                 <el-form-item class="info-line online">
+                    <span>其他</span>
+                    <el-input disabled v-model="infoApply.checkList3"></el-input>
+                </el-form-item> -->
+
+
+                <el-form-item class="info-line online">
                     <span>宣传内容</span>
-                    <el-input :disabled="!changeinfo" v-model="infoApply.propaganda" placeholder="广告宣传内容"
+                    <el-input disabled v-model="infoApply.propaganda" placeholder="广告宣传内容"
                         type="textarea" :rows="3"></el-input>
                 </el-form-item>
                 <el-form-item class="info-line online">
                     <span>其他说明</span>
-                    <el-input :disabled="!changeinfo" v-model="infoApply.explain" placeholder="设计稿内容描述" type="textarea"
+                    <el-input disabled v-model="infoApply.explain" placeholder="设计稿内容描述" type="textarea"
                         :rows="3"></el-input>
                 </el-form-item>
                 <div style="padding:0 20px 0 100px;margin-bottom: 20px;">
                     <uploadDown :datalist="datalist" :dialogStatus="uploadstatus"></uploadDown>
                 </div>
+                <div style="padding:0 20px 0 100px;margin-bottom: 20px;" v-if="uploadsts">
+                    <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
+                    </myUpload>
+                </div>
                 <el-form-item class="info-line online" v-if="changeinfo">
                     <span>备注</span>
                     <el-input :disabled="!changeinfo" v-model="infolist.remark" placeholder="备注"></el-input>
                 </el-form-item>
             </el-form>
 
+            <div v-if="suppSts" class="supp-box">
+                <span style="padding-left: 20px;padding-top: 8px;">简易设计</span>
+                <div v-for="item in gys" class="suppdiv">
+                    <el-checkbox :disabled="!changeinfo||!suppdis" v-model="item.sts"><span>{{item.type}}</span></el-checkbox>
+                    <div class='box'>
+                        <div v-for="one in item.list"  class="supp-list">
+                            <el-select :disabled="!changeinfo||!suppdis" v-model="one.cho" placeholder="请选择供应商" @change="priceone(one,item)">
+                                 <el-option v-for="items in item.supplier" :key="items.name" :label="items.name" :value="items.name">
+                                 </el-option>
+                            </el-select>
+                            <el-input :disabled="!changeinfo||!suppdis" v-model="one.num" placeholder="数量"></el-input>
+                        </div>
+                    </div>
+                    <el-button @click="item.list.push({})"type="text" v-if="suppdis">继续添加</el-button>
+                </div>
+            </div>
+
             <div style="margin-bottom: 20px;padding: 0 20px;">
                 <el-table class="com-table" ref="multipleTable" :data="rovaList" tooltip-effect="dark" size="small"
                     border style="width: 100%">
@@ -222,7 +131,7 @@
                     </el-table-column>
                     <el-table-column prop="opNo" label="处理人工号">
                     </el-table-column>
-                    <el-table-column prop="createTime" label="处理时间">
+                    <el-table-column prop="opTime" label="处理时间">
                     </el-table-column>
                     <el-table-column prop="remark" label="备注">
                     </el-table-column>
@@ -240,10 +149,12 @@
 
 <script>
     import uploadDown from '../../../../components/uploadDown.vue'
+    import myUpload from "../../../../components/upload.vue";
     export default {
         props: ["componentInfo", "componentStatus", "changeinfo"],
         components: {
-            uploadDown
+            uploadDown,
+            myUpload
         },
         data() {
             return {
@@ -291,10 +202,60 @@
                     url: '/bpm/api/download',
                     type: 1
                 },
-                uploadstatus:false
+                fileInfo: {
+                    type: 'img',
+                    limit: 50,
+                    url: '/bpm/api/upload',
+                    fileList: []
+                },
+                uploadstatus:false,
+                suppSts:false,
+                suppdis:false,
+                uploadsts:false,
+                attList:[],
+                gys:[
+                // {
+                //     type:'设计类型1',
+                //     supplier:[
+                //         {
+                //             name:'供应商1',
+                //             price:100
+                //         },
+                //         {
+                //             name:'供应商2',
+                //             price:200
+                //         },
+                //     ],
+                //     list:[{}]
+                // },
+                // {
+                //     type:'设计类型2',
+                //     supplier:[
+                //         {
+                //             name:'供应商3',
+                //             price:100
+                //         },
+                //         {
+                //             name:'供应商4',
+                //             price:200
+                //         },
+                //     ],
+                //     list:[{}]
+                // },
+            ]
             }
         },
         methods: {
+            uploadBack(v) {
+                this.attList = v;
+            },
+            priceone(v,item){
+                for(let i=0;i<item.supplier.length;i++){
+                    if(v.cho==item.supplier[i].name){
+                        v.price = item.supplier[i].price
+                    }
+                }
+            },
             //处理申请
             dialogCheck() {
                 this.userInfo = JSON.parse(window.sessionStorage.userInfo);
@@ -319,18 +280,20 @@
                     this.datalist.attList = res.data.attachList;
                     this.infolist = Object.assign({}, res.data);
                     this.infoApply = JSON.parse(this.infolist.params.terminalRes);
-                    this.uploadstatus = true;
-                    if (!this.changeinfo) {
-                        let _this = this;
-                        _this.infoApply.esaystr = _this.changeArr(_this.infoApply.esay);
-                        _this.infoApply.picterstr = _this.changeArr(_this.infoApply.picter);
-                        _this.infoApply.mediumstr = _this.changeArr(_this.infoApply.medium);
-                        _this.infoApply.productstr = _this.changeArr(_this.infoApply.product);
-                        _this.infoApply.copywritingstr = _this.changeArr(_this.infoApply.copywriting);
-                        _this.infoApply.videostr = _this.changeArr(_this.infoApply.video);
-                        _this.infoApply.allstr = _this.changeArr(_this.infoApply.all);
-                        _this.infoApply.testingstr = _this.changeArr(_this.infoApply.testing);
+                    if(this.infoApply.price){
+                        this.gys = this.infoApply.gys;
+                        this.suppSts = true;
+                        this.suppdis = false;
+                    }
+                    if(this.rovaList[this.rovaList.length-1].taskName == '宣传负责人'){
+                        this.suppSts = true;
+                        this.suppdis = true;
+                        this.getSupp();
                     }
+                    if(this.rovaList[this.rovaList.length-1].taskName == '宣传负责人上传'){
+                        this.uploadsts = true;
+                    }
+                    this.uploadstatus = true;
                 });
             },
             changeArr(v) {
@@ -350,7 +313,20 @@
                 }
                 let _this = this;
                 this.infolist.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD")
-                // return
+                if(this.suppSts){
+                    let gys = [];
+                    let price = 0;
+                    for (let i = 0; i < this.gys.length; i++) {
+                        if(this.gys[i].sts){
+                            gys.push(this.gys[i])
+                            for (let j = 0; j < gys[i].list.length; j++) {
+                                price+=gys[i].list[j].num*gys[i].list[j].price;
+                            }
+                        }
+                    }
+                    this.infoApply.gys=gys;
+                    this.infoApply.price=price;
+                }
                 if (v === 1) {
                     let params = {
                         dealType: '1',
@@ -372,6 +348,19 @@
                     }
                     this.submitInfo("/bpm/api/submitTask", params);
                 } else if (v === 2) {
+                    let attList = [];
+                    for (let i = 0; i < this.attList.length; i++) {
+                        attList.push({
+                            id: this.attList[i].id,
+                            fileCode: this.attList[i].fileCode,
+                            fileName: this.attList[i].fileName,
+                            opName: this.attList[i].opName,
+                            opNo: this.attList[i].opNo,
+                            opTime: this.attList[i].opTime,
+                            woNo: this.infolist.woNo,
+                            attchFileId: this.attList[i].attchFileId,
+                        });
+                    }
                     let param = {
                         dealType: '0',
                         dealTypeDesc: '提交',
@@ -389,6 +378,11 @@
                         },
                         woNo: this.infolist.woNo,
                     }
+                    param.params.attList = JSON.stringify(attList);
+                    if(this.rovaList[this.rovaList.length-1].taskName == '市场经营部'){
+                        param.params.assigneeNo = this.infolist.opNo;
+                        param.params.assigneeName = this.infolist.opName;
+                    }
                     this.submitInfo("/bpm/api/submitTask", param);
                 }
             },
@@ -474,6 +468,21 @@
                     this.terminalopt = res.data;
                 });
             },
+            getSupp() {
+                this.$http({
+                    url: "/market/cDesignSupplier/getSupplier",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: {},
+                }).then((res) => {
+                    res.data.forEach(item=>{
+                        item.list = [{}];
+                    })
+                    this.gys = res.data;
+                });
+            },
         },
         mounted() {
 
@@ -557,4 +566,34 @@
         text-align: right;
         padding: 15px 20px;
     }
+    .supp-box{
+        span{
+            width: 100px;
+            display: inline-block;
+        }
+        .suppdiv{
+            width: calc(100% - 110px);
+            float: right;
+            .el-checkbox{
+                vertical-align: top;
+                padding-top: 10px;
+            }
+        }
+        .box{
+            width: calc(100% - 200px);
+            display: inline-block;
+            // float: right;
+        }
+        .supp-list{
+            margin-bottom: 20px;
+            .el-select{
+                width: 45%;
+                margin-right:5%;
+            }
+            .el-input{
+                width: 45%;
+                margin-right:5%;
+            }
+        }
+    }
 </style>

+ 6 - 0
src/router/index.js

@@ -1046,6 +1046,12 @@ const routes = [{
             component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/terminal/advertincrease'], resolve)
         },
         {
+            meta: { name:  '广告设计费明细', keepAlive: false },
+            path: '/advdetailed',
+            name: 'advdetailed',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/terminal/advdetailed'], resolve)
+        },
+        {
             meta: { name:  '素材库', keepAlive: false },
             path: '/advertmaterial',
             name: 'advertmaterial',