liyuanpeng 3 лет назад
Родитель
Сommit
bc36610b71

+ 8 - 0
src/assets/style.scss

@@ -420,3 +420,11 @@
 .el-table .success-row {
     background: #f0f9eb!important;
 }
+
+.ggtabinp .el-input__inner{
+	padding-left: 5px!important;
+	padding-right: 0!important;
+}
+.ggtabinp .el-date-editor .el-input__inner{
+	padding-left: 25px!important;
+}

+ 1 - 1
src/components/upload.vue

@@ -75,7 +75,7 @@
                 }).then((res) => {
                     if (this.fileInfo.type === 'btn') {
                         this.$refs['upload'].clearFiles();
-                        this.$emit('uploadBack')
+                        this.$emit('uploadBack',res)
                         _this.$message({
                             message: res.data.desc,
                             type: 'success'

+ 384 - 0
src/pages/main/advReleaseAppro/advgys.vue

@@ -0,0 +1,384 @@
+<template>
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <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>
+            </div>
+            <div class="tabbox">
+                <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+                    tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
+                    <el-table-column prop="supplierName" label="供应商">
+                    </el-table-column>
+                    <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="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>
+                <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
+            </div>
+        </div>
+
+        <el-dialog :title="titname + '供应商'" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
+            :modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia">
+            <div v-loading="loadinged">
+                <el-form :model="infolist" ref="infolist" :rules="rules">
+                    <div class="info-line">
+                        <el-form-item prop="supplierName">
+                            <span>供应商</span>
+                            <el-input v-model="infolist.supplierName" placeholder="供应商名称" :disabled="disableStatus"></el-input>
+                        </el-form-item>
+						<el-form-item>
+                            <span>供应商编码</span>
+                            <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>
+                    </div>
+                </el-form>
+
+                <div slot="footer" class="dialog-footer myfooter">
+                    <el-button type="primary" @click="dialogCli(2)" v-if="titname !== '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)" v-if="titname === '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)">取 消</el-button>
+                </div>
+            </div>
+        </el-dialog>
+
+        <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible" v-if="centerDialogVisible"></myMessage>
+    </fullscreen>
+
+</template>
+<script>
+    import mySearch from "../../../components/search.vue";
+    import myMessage from "../../../components/myMessage.vue"
+    import toolList from '../../../components/toolList'
+
+    export default {
+        components: {
+            mySearch,
+            myMessage,
+            toolList
+        },
+        data() {
+            const supplierName = (rule, value, callback) => {
+                if (!this.infolist.supplierName) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            return {
+                rules: {
+                    supplierName: [{
+                        required: true,
+                        trigger: 'blur',
+                        validator: supplierName
+                    }],
+                },
+                searchList: [
+                    {
+                        type: 'input',
+                        tit: '供应商名称',
+                        value: '',
+                        width: '98%',
+                    }
+                ],
+                tooltit:'供应商管理',
+                fullscreen: false,
+                total: 0,
+                pageSize: 1,
+                tableData: [],
+                dialogStatus: false,
+                disableStatus: false,
+                titname: '',
+                infolist: {},
+                userInfo: {},
+                params: {},
+                centerDialogVisible: false,
+                messTit: '',
+                delid: '',
+                loading:false,
+                loadinged:false,
+            }
+        },
+        methods: {
+            closedia() {
+                this.infolist = {};
+                this.dialogStatus = false;
+            },
+            //搜索数据
+            searchInfo(v) {
+                this.params = {};
+                v[0] ? this.params.supplierName = v[0] : '';
+                this.getList(this.params, this.pageSize);
+            },
+            //获取列表
+            getList(v, n) {
+                this.pageSize = n;
+                let _this = this;
+                this.loading = true;
+                this.tableData = [];
+                this.$http({
+                    url: "/market/cAdvPubSupplier/queryPage",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tableData = res.data.data;
+                    this.total = res.data.totalRecord;
+                    this.loading = false;
+                });
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+            //申请
+            dialogCheck(v, n) {
+                this.dialogStatus = true;
+                this.infolist = Object.assign({}, n);
+                if (v === 1) {
+                    this.titname = '查看';
+                    this.disableStatus = true;
+                    return
+                } else if (v === 2) {
+                    this.titname = '修改';
+                    this.disableStatus = false;
+                } else if (v === 3) {
+                    this.titname = '添加';
+                    this.disableStatus = false;
+                }
+                this.infolist.opNo = this.userInfo.loginNo;
+                this.infolist.opName = this.userInfo.loginName;
+            },
+            //添加
+            dialogCli(v) {
+                if (v === 1) {
+                    this.infolist = {};
+                    this.dialogStatus = false;
+                    return
+                } else {
+                    this.infolist.opTime = this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss");
+                    this.infolist.endTime = this.$formatDate(this.infolist.endTime, "YYYY-MM-DD HH:mm:ss");
+                    if (this.titname === '添加') {
+                        this.submitInfo("/market/cAdvPubSupplier/add");
+                    } else if (this.titname === '修改') {
+                        this.submitInfo("/market/cAdvPubSupplier/update", v);
+                    }
+                }
+            },
+            submitInfo(u) {
+                let _this = this;
+                this.$refs.infolist.validate(valid => {
+                    if (valid) {
+                        this.loadinged = true;
+                        this.$http({
+                            url: u,
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data: this.infolist,
+                        }).then((res) => {
+                            this.loadinged = false;
+                            if (res.data.result === 1) {
+                                _this.$message({
+                                    message: res.data.desc,
+                                    type: 'error'
+                                });
+                            } else {
+                                _this.$message({
+                                    message: '成功',
+                                    type: 'success'
+                                });
+                                _this.infolist = {};
+                                _this.dialogStatus = false;
+                                _this.getList({}, _this.pageSize);
+                            }
+
+                        });
+                    }
+                })
+            },
+            closeMessage(v) {
+                this.centerDialogVisible = false;
+                let _this = this;
+                if (v === 1) {
+                    _this.$http({
+                        url: "/market/cAdvPubSupplier/del",
+                        method: "post",
+                        headers: {
+                            "Content-Type": "application/json",
+                        },
+                        data: {
+                            id: this.delid
+                        },
+                    }).then((res) => {
+                        if (res.data.result === 1) {
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'error'
+                            });
+                        } else {
+                            _this.$message({
+                                message: '删除成功',
+                                type: 'success'
+                            });
+                            _this.getList(this.params, this.pageSize);
+                        }
+                    });
+                }
+            },
+            //删除
+            delLine(v) {
+                this.centerDialogVisible = true;
+                this.messTit = '即将删除此条数据, 是否删除?';
+                this.delid = v.id;
+            },
+            //文件返回值
+            uploadBack(v) {
+                console.log(v)
+            },
+            //功能栏
+            iconCli(v) {
+                if (v === 1) {
+                    this.getList(this.params, this.pageSize);
+                }
+                if (v === 2) {
+                    this.fullscreen = !this.fullscreen
+                }
+            },
+            getUser() {
+                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+
+            }
+        },
+        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;
+            }
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+    }
+
+    .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);
+        }
+    }
+</style>

+ 470 - 0
src/pages/main/advReleaseAppro/advysx.vue

@@ -0,0 +1,470 @@
+<template>
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <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>
+            </div>
+            <div class="tabbox">
+                <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+                    tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
+                    <el-table-column prop="budgetSum" 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="useSum" label="剩余总额">
+                    </el-table-column> -->
+					<el-table-column prop="homeLocation" label="所属地">
+                    </el-table-column>
+					<el-table-column prop="startTime" label="开始时间">
+                    </el-table-column>
+					<el-table-column prop="endTime" 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>
+                <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
+            </div>
+        </div>
+
+        <el-dialog :title="titname" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
+            :modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia">
+            <div v-loading="loadinged">
+                <el-form :model="infolist" ref="infolist" >
+                    <div class="info-line">
+                        <el-form-item>
+                            <span>预算总额</span>
+                            <el-input v-model="infolist.budgetSum" 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 prop="costAccount">
+						    <span>剩余总额</span>
+						    <el-input v-model="infolist.useSum" placeholder="剩余总额" :disabled="disableStatus"></el-input>
+						</el-form-item> -->
+						<el-form-item>
+                            <span>开始时间</span>
+							<el-date-picker v-model="infolist.startTime" type="date" placeholder="开始时间" :disabled="disableStatus">
+							</el-date-picker>
+                        </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>
+
+                <div slot="footer" class="dialog-footer myfooter">
+                    <el-button type="primary" @click="dialogCli(2)" v-if="titname !== '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)" v-if="titname === '查看'">确 定</el-button>
+                    <el-button @click="dialogCli(1)">取 消</el-button>
+                </div>
+            </div>
+        </el-dialog>
+
+        <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible" v-if="centerDialogVisible"></myMessage>
+    </fullscreen>
+
+</template>
+<script>
+    import mySearch from "../../../components/search.vue";
+    import myMessage from "../../../components/myMessage.vue"
+    import toolList from '../../../components/toolList'
+
+    export default {
+        components: {
+            mySearch,
+            myMessage,
+            toolList
+        },
+        data() {
+            const regionCode = (rule, value, callback) => {
+                if (!this.infolist.regionCode) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            const areaCode = (rule, value, callback) => {
+                if (!this.areaCode) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+			const preAccount = (rule, value, callback) => {
+                if (!this.infolist.preAccount) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+			const secbuyPreAccount = (rule, value, callback) => {
+                if (!this.infolist.secbuyPreAccount) {
+                    callback(new Error('不能为空'))
+                } else {
+                    callback()
+                }
+            }
+            return {
+                rules: {
+                    regionCode: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: regionCode
+                    }],
+                    areaCode: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: areaCode
+                    }],
+					preAccount: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: preAccount
+                    }],
+					secbuyPreAccount: [{
+                        required: true,
+                        trigger: 'change',
+                        validator: secbuyPreAccount
+                    }]
+                },
+                searchList: [
+                    {
+                        type: 'input',
+                        tit: '地市名称',
+                        value: '',
+                        width: '98%',
+                    },
+                ],
+                tooltit:'预算及上限',
+                fullscreen: false,
+                total: 0,
+                pageSize: 1,
+                tableData: [],
+                dialogStatus: false,
+                disableStatus: false,
+                titname: '',
+                infolist: {},
+                userInfo: {},
+                params: {},
+                centerDialogVisible: false,
+                messTit: '',
+                delid: '',
+                loading:false,
+                loadinged:false,
+				regionOpt:[],
+				countyOpt:[],
+				areaCode:'',
+				areaName:'',
+            }
+        },
+        methods: {
+            closedia() {
+                this.infolist = {};
+                this.dialogStatus = false;
+            },
+            //搜索数据
+            searchInfo(v) {
+                this.params = {};
+                v[0] ? this.params.regionName = v[0] : '';
+                this.getList(this.params, this.pageSize);
+            },
+            //获取列表
+            getList(v, n) {
+                this.pageSize = n;
+                let _this = this;
+                this.loading = true;
+                this.tableData = [];
+                this.$http({
+                    url: "/market/cAdvPubBudget/queryPage",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tableData = res.data.data;
+                    this.total = res.data.totalRecord;
+                    this.loading = false;
+                });
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+            //申请
+            dialogCheck(v, n) {
+                this.dialogStatus = true;
+                this.infolist = Object.assign({}, n);
+				this.areaCode = this.infolist.areaCode;
+				this.areaName = this.infolist.areaName;
+                if (v === 1) {
+                    this.titname = '查看';
+                    this.disableStatus = true;
+					this.getComp(v.regionCode);
+                    return
+                } else if (v === 2) {
+                    this.titname = '修改';
+                    this.disableStatus = false;
+					this.getComp(v.regionCode);
+                } else if (v === 3) {
+                    this.titname = '添加';
+                    this.disableStatus = false;
+                }
+                this.infolist.opNo = this.userInfo.loginNo;
+                this.infolist.opName = this.userInfo.loginName;
+            },
+            //添加
+            dialogCli(v) {
+                if (v === 1) {
+                    this.infolist = {};
+                    this.dialogStatus = false;
+                    return
+                } else {
+                    this.infolist.opTime = this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss");
+                    this.infolist.startTime = this.$formatDate(this.infolist.startTime, "YYYY-MM-DD HH:mm:ss");
+                    this.infolist.endTime = this.$formatDate(this.infolist.endTime, "YYYY-MM-DD HH:mm:ss");
+					this.infolist.areaCode = this.areaCode;
+					this.infolist.areaName = this.areaName;
+                    if (this.titname === '添加') {
+                        this.submitInfo("/market/cAdvPubBudget/add");
+                    } else if (this.titname === '修改') {
+                        this.submitInfo("/market/cAdvPubBudget/update", v);
+                    }
+
+                }
+            },
+            submitInfo(u) {
+                let _this = this;
+                this.$refs.infolist.validate(valid => {
+                    if (valid) {
+                        this.loadinged = true;
+                        this.$http({
+                            url: u,
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data: this.infolist,
+                        }).then((res) => {
+                            this.loadinged = false;
+                            if (res.data.result === 1) {
+                                _this.$message({
+                                    message: res.data.desc,
+                                    type: 'error'
+                                });
+                            } else {
+                                _this.$message({
+                                    message: '成功',
+                                    type: 'success'
+                                });
+                                _this.infolist = {};
+                                _this.dialogStatus = false;
+                                _this.getList({}, _this.pageSize);
+                            }
+
+                        });
+                    }
+                })
+            },
+            closeMessage(v) {
+                this.centerDialogVisible = false;
+                let _this = this;
+                if (v === 1) {
+                    _this.$http({
+                        url: "/market/cAdvPubBudget/del",
+                        method: "post",
+                        headers: {
+                            "Content-Type": "application/json",
+                        },
+                        data: {
+                            id: this.delid
+                        },
+                    }).then((res) => {
+                        if (res.data.result === 1) {
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'error'
+                            });
+                        } else {
+                            _this.$message({
+                                message: '删除成功',
+                                type: 'success'
+                            });
+                            _this.getList(this.params, this.pageSize);
+                        }
+                    });
+                }
+            },
+            //删除
+            delLine(v) {
+                this.centerDialogVisible = true;
+                this.messTit = '即将删除此条数据, 是否删除?';
+                this.delid = v.id;
+            },
+            //文件返回值
+            uploadBack(v) {
+                console.log(v)
+            },
+            //功能栏
+            iconCli(v) {
+                if (v === 1) {
+                    this.getList(this.params, this.pageSize);
+                }
+                if (v === 2) {
+                    this.fullscreen = !this.fullscreen
+                }
+            },
+			verifcheck(v) {
+				if(v == 2){
+					for (let i = 0; i < this.countyOpt.length; i++) {
+						if (this.countyOpt[i].compId === this.areaCode) {
+							this.areaName = this.countyOpt[i].compName
+						}
+					}
+				}else{
+					for (let i = 0; i < this.regionOpt.length; i++) {
+						if (this.regionOpt[i].compId === this.infolist.regionCode) {
+							this.infolist.regionName = this.regionOpt[i].compName;
+							this.areaCode = '';
+							this.areaName = '';
+							this.getComp(this.regionOpt[i].compId);
+						}
+					}
+				}
+			},
+			getComp(v){
+				this.$http({
+					url: "/sysmgr/regionComp/queryList",
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+					},
+					data: {
+						parentCompId: v
+					},
+				}).then((res) => {
+					this.countyOpt = res.data;
+				});
+			},
+            getUser() {
+                this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+				this.$http({
+				    url: "/sysmgr/regionComp/queryList",
+				    method: "post",
+				    headers: {
+				        "Content-Type": "application/json",
+				    },
+				    data: {
+				        parentCompId: '0'
+				    },
+				}).then((res) => {
+				    this.regionOpt = res.data;
+				});
+            }
+        },
+        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;
+            }
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+    }
+
+    .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);
+        }
+    }
+</style>

+ 967 - 0
src/pages/main/advReleaseAppro/index.vue

@@ -0,0 +1,967 @@
+<template>
+	<fullscreen :fullscreen.sync="fullscreen" class="container">
+		<div class="container-box">
+			<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>
+			</div>
+			<div class="tabbox">
+				<el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+					tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
+					<el-table-column prop="woTitle" label="业务名称">
+					</el-table-column>
+					<el-table-column prop="opName" label="申请姓名">
+					</el-table-column>
+					<el-table-column prop="createTime" label="申请时间">
+					</el-table-column>
+					<el-table-column prop="stsDesc" label="状态">
+					</el-table-column>
+					<el-table-column label="操作" width="120px" align="center">
+						<template slot-scope="scope">
+							<el-button size="mini" type="primary" @click="dialogCheck(1,scope.row)">查看</el-button>
+							<el-button size="mini" type="danger" v-if="scope.row.sts != 1"
+								@click="dialogCheck(2,scope.row)">处理</el-button>
+							<el-button size="mini" type="danger" v-if="!scope.row.finishTime&&scope.row.sts==1&&scope.row.opName==userInfo.loginName"  @click="delLine(1,scope.row)">撤销</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+					:total="total">
+				</el-pagination>
+			</div>
+		</div>
+
+		<el-dialog :title="titname" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
+			:modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia" :fullscreen="true">
+			<div v-loading="loadinged">
+				<el-form :model="infolist" ref="infolist" :rules="rules"
+					style="height: calc(100vh - 180px);overflow-y: scroll;">
+					<div class="info-line">
+						<el-form-item prop="woName">
+							<span>工单名称</span>
+							<el-input v-model="infolist.woName" placeholder="工单名称" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item prop="terminal">
+							<span>申请流程</span>
+							<el-select clearable v-model="terminal" placeholder="申请流程" :disabled="titname != '添加'&&vision != '流程发起'">
+								<el-option v-for="items in options" :key="items.procId" :label="items.procName"
+									:value="items.procId">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item prop="woTypeCode">
+							<span>媒介类型</span>
+							<el-select clearable v-model="woTypeCode" placeholder="媒介类型" :disabled="titname != '添加'&&vision != '流程发起'">
+								<el-option v-for="items in mjopt" :key="items.id" :label="items.name" :value="items.id">
+								</el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item prop="supplierName">
+							<span>供应商</span>
+							<el-button type="primary" @click="chosegys" :disabled="titname != '添加'&&vision != '流程发起'">选择</el-button>
+							<el-input v-model="suppinfo.supplierName" disabled
+								style="width: calc(100% - 210px);margin-left: 20px;"></el-input>
+						</el-form-item>
+					</div>
+					
+					<div class="info-line" v-if="woTypeCode == 1">
+						<el-form-item>
+							<span>投放单位</span>
+							<el-input v-model="infolist.putUnit" placeholder="投放单位" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>项目名称</span>
+							<el-input v-model="infolist.projectName" placeholder="项目名称" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>投放时期</span>
+							<el-input v-model="infolist.putTime" placeholder="投放时期" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>项目负责人</span>
+							<el-input v-model="infolist.dutyName" placeholder="项目负责人" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>联系方式</span>
+							<el-input v-model="infolist.dutyTel" placeholder="联系方式" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>活动编号</span>
+							<el-input v-model="infolist.actNo" placeholder="活动编号" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+					</div>
+					<div class="info-line" v-if="woTypeCode == 4">
+						<el-form-item>
+							<span>品牌及内容</span>
+							<el-input v-model="infolist.advContent" placeholder="广告发布品牌及内容" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>广告版本</span>
+							<el-input v-model="infolist.advVersion" placeholder="广告发布版本" :disabled="titname != '添加'&&vision != '流程发起'">
+							</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" :infodatas="infodatas" :status="status" :allsumnum="allsum"></television>
+					<paper v-if="woTypeCode == 3" :titname='titname' :vision='vision' @backsum="backsum" :infodatas="infodatas" :status="status" :allsumnum="allsum"></paper>
+					<outdoors v-if="woTypeCode == 4" :titname='titname' :vision='vision' @backsum="backsum" :taxRate="suppinfo.taxRate" :infodatas="infodatas" :status="status" :allsumnum="allsum" :otherinfo="otherinfo"></outdoors>
+					
+					<div class="info-line" style="clear: both;">
+						<el-form-item>
+							<span>甲方</span>
+							<el-input v-model="infolist.partyA" placeholder="甲方" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>乙方</span>
+							<el-input v-model="infolist.partyB" placeholder="乙方" :disabled="titname != '添加'&&vision != '流程发起'">
+							</el-input>
+						</el-form-item>
+						<el-form-item>
+							<span>日期</span>
+							<el-date-picker :disabled="titname != '添加'&&vision != '流程发起'" v-model="infolist.atime"
+								type="date">
+							</el-date-picker>
+						</el-form-item>
+						<el-form-item>
+							<span>日期</span>
+							<el-date-picker :disabled="titname != '添加'&&vision != '流程发起'" v-model="infolist.btime"
+								type="date">
+							</el-date-picker>
+						</el-form-item>
+					</div>
+					
+					<div style="padding:0 20px 0 120px;margin-bottom: 20px;" v-if="disableStatus">
+						<uploadDown :datalist="datalist" :dialogStatus="uploadstatus"></uploadDown>
+					</div>
+
+					<div v-if="!disableStatus">
+						<myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
+						</myUpload>
+					</div>
+
+					<el-form-item class="info-line online" v-if="visionsts == '2'">
+						<span>审批说明</span>
+						<el-input v-model="remark" placeholder="审批说明" type="textarea" :rows="3"
+							:disabled="titname == '查看'">
+						</el-input>
+					</el-form-item>
+
+					<div style="margin-bottom: 20px;padding: 0 20px;" v-if="titname != '添加'">
+						<el-table class="com-table" ref="multipleTable" :data="rovaList" tooltip-effect="dark"
+							size="small" border style="width: 100%">
+							<el-table-column prop="taskId" label="编号">
+							</el-table-column>
+							<el-table-column prop="taskName" label="环节">
+							</el-table-column>
+							<el-table-column prop="assigneeName" label="处理人">
+							</el-table-column>
+							<el-table-column prop="assigneeNo" label="处理人工号">
+							</el-table-column>
+							<el-table-column prop="opTime" label="处理时间">
+							</el-table-column>
+							<el-table-column prop="remark" label="备注">
+							</el-table-column>
+						</el-table>
+					</div>
+				</el-form>
+
+				<div slot="footer" class="dialog-footer myfooter">
+					<el-button v-if="titname != '查看' && vision == '流程发起'" type="primary" @click="dialogCli(2)">确 定
+					</el-button>
+					<el-button v-if="titname != '查看' && vision == '上刊用印'" type="primary" @click="dialogCli(2)">确 定
+					</el-button>
+					<el-button v-if="titname != '查看' && visionsts == '2'" type="primary" @click="dialogCli(2)">通 过
+					</el-button>
+					<el-button v-if="titname != '查看' && visionsts == '2'" type="primary" @click="dialogCli(1)">打 回
+					</el-button>
+					<el-button v-if="titname == '添加'" type="primary" @click="dialogCliadd">确 定</el-button>
+					<el-button v-if="titname == '查看'" @click="dialogCli(3)">确 定</el-button>
+					<el-button @click="dialogCli(3)">取 消</el-button>
+				</div>
+			</div>
+		</el-dialog>
+
+		<el-dialog title="供应商" :visible.sync="suppliersts" :destroy-on-close="true" :modal-append-to-body="false"
+			:close-on-click-modal="false" :fullscreen="true">
+			<el-table :data="suppList" tooltip-effect="dark" style="width: 100%" border height="calc(100vh - 180px)">
+				<el-table-column width="55" align="center">
+					<template slot-scope="scope">
+						<el-checkbox v-model="scope.row.sts" @change="boxcho(scope)"></el-checkbox>
+					</template>
+				</el-table-column>
+				<el-table-column prop="supplierName" label="供应商">
+				</el-table-column>
+				<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>
+			<div class="t-footer" style="text-align: right;margin-top: 20px;">
+				<el-button type="primary" @click="suppliercheck(1)">确 定</el-button>
+				<el-button @click="suppliercheck(2)">取 消</el-button>
+			</div>
+		</el-dialog>
+
+		<myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
+			v-if="centerDialogVisible"></myMessage>
+	</fullscreen>
+
+</template>
+<script>
+	import mySearch from "../../../components/search.vue";
+	import myMessage from "../../../components/myMessage.vue"
+	import toolList from '../../../components/toolList'
+	import myUpload from '../../../components/upload'
+	import uploadDown from '../../../components/uploadDown.vue'
+	import myinternet from './internet.vue'
+	import television from './television.vue'
+	import paper from './paper.vue'
+	import outdoors from './outdoors.vue'
+
+	export default {
+		components: {
+			mySearch,
+			myMessage,
+			toolList,
+			myUpload,
+			uploadDown,
+			myinternet,
+			television,
+			paper,
+			outdoors
+		},
+		data() {
+			const woName = (rule, value, callback) => {
+				if (!this.infolist.woName) {
+					callback(new Error('不能为空'))
+				} else {
+					callback()
+				}
+			}
+			const terminal = (rule, value, callback) => {
+				if (!this.terminal) {
+					callback(new Error('不能为空'))
+				} else {
+					callback()
+				}
+			}
+			const woTypeCode = (rule, value, callback) => {
+				if (!this.woTypeCode) {
+					callback(new Error('不能为空'))
+				} else {
+					callback()
+				}
+			}
+			const supplierName = (rule, value, callback) => {
+				if (!this.suppinfo.supplierName) {
+					callback(new Error('不能为空'))
+				} else {
+					callback()
+				}
+			}
+			return {
+				rules: {
+					woName: [{
+						required: true,
+						trigger: 'blur',
+						validator: woName
+					}],
+					terminal: [{
+						required: true,
+						trigger: 'change',
+						validator: terminal
+					}],
+					woTypeCode: [{
+						required: true,
+						trigger: 'change',
+						validator: woTypeCode
+					}],
+					supplierName: [{
+						required: true,
+						trigger: 'change',
+						validator: supplierName
+					}],
+				},
+				tooltit: '广告发布申请',
+				fullscreen: false,
+				total: 0,
+				pageSize: 1,
+				tableData: [{}],
+				dialogStatus: false,
+				disableStatus: false,
+				titname: '',
+				infolist: {
+
+				},
+				userInfo: {},
+				params: {},
+				centerDialogVisible: false,
+				messTit: '',
+				delid: '',
+				loading: false,
+				loadinged: false,
+				fileInfo: {
+					limit: 5,
+					url: '/bpm/api/upload',
+					fileList: []
+				},
+				rovaList: [],
+				vision: '',
+				datalist: {
+					url: '/bpm/api/download',
+					type: 1
+				},
+				uploadstatus: false,
+				rovaList: [],
+				mydisable: 1,
+				opname: '',
+				opno: '',
+				attList: [],
+				options: [],
+				terminal: '',
+				remark: '',
+				visionsts: '1',
+				woTypeCode: 1,
+				mjopt: [{
+					id: 1,
+					name: '互联网'
+				}, {
+					id: 2,
+					name: '广播电视'
+				}, {
+					id: 3,
+					name: '纸媒'
+				}, {
+					id: 4,
+					name: '户外'
+				}, ],
+				infodatas: [{}, {}],
+				suppliersts: false,
+				suppList: [],
+				suppinfo: {},//供应商信息
+				allsum:0,//合计总价
+				status:false,//组件数据状态
+				otherinfo:{},
+			}
+		},
+		methods: {
+			//组件返回数据
+			backsum(v,n,x){
+				this.allsum = v;
+				this.infodatas = n;
+				if(x){
+					this.otherinfo.advPriceSum= x.advPriceSum;
+					this.otherinfo.advDiscountSum= x.advDiscountSum;
+					this.otherinfo.contractAdvCost= x.contractAdvCost;
+					this.otherinfo.contractAdvTax= x.contractAdvTax;
+					this.otherinfo.otherDiscount= x.otherDiscount;
+				}
+			},
+			//查询供应商
+			chosegys() {
+				this.suppliersts = true;
+				this.$http({
+					url: "/market/cAdvPubSupplier/queryPage",
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+						"page": '{"pageNo":"' + 1 + '","pageSize":"1000"}'
+					},
+					data: {},
+				}).then((res) => {
+					res.data.data.forEach(item => {
+						item.sts = false;
+					})
+					this.suppList = res.data.data;
+				});
+			},
+			//选择供应商
+			boxcho(v) {
+				this.suppinfo = v.row;
+				for (let i = 0; i < this.suppList.length; i++) {
+					this.suppList[i].sts = false;
+				}
+				this.suppList[v.$index].sts = true;
+			},
+			//选择供应商
+			suppliercheck(v) {
+				if (v == 2) {
+					this.suppinfo = {};
+				}
+				this.suppliersts = false;
+			},
+			closedia() {
+				this.infolist = {};
+				this.attList = [];
+				this.fileInfo.fileList = [];
+				this.dialogStatus = false;
+			},
+			//获取列表
+			getList(v, n) {
+				this.pageSize = n;
+				let _this = this;
+				this.loading = true;
+				v.procName = "广告发布申请流程(省)";
+				this.$http({
+					url: "/bpm/api/queryToDoAndFinishTaskList",
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+						"page": '{"pageNo":"' + n + '","pageSize":"10"}'
+					},
+					data: v,
+				}).then((res) => {
+					this.tableData = res.data.data;
+					this.total = res.data.totalRecord;
+					this.loading = false;
+				});
+			},
+			// 分页
+			currchange(v) {
+				this.pageSize = v;
+				this.getList(this.params, this.pageSize);
+			},
+			//申请
+			dialogCheck(v, n) {
+				this.dialogStatus = true;
+				let infolist = Object.assign({}, n);
+				this.vision = '';
+				this.visionsts = '';
+				this.infodatas = [{}, {}];
+				if (v === 1) {
+					this.titname = '查看';
+					this.disableStatus = true;
+				} else if (v === 2) {
+					this.titname = '审批';
+					this.disableStatus = true;
+				} else if (v === 3) {
+					this.titname = '添加';
+					this.disableStatus = false;
+					return
+				}
+				this.$http({
+					url: '/bpm/api/taskInit',
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+					},
+					data: {
+						woNo: n.woNo
+					},
+				}).then((res) => {
+					// this.infolist = Object.assign({}, res.data);
+					this.terminal = infolist.procId;
+					this.opname = res.data.opName;
+					this.opno = res.data.opNo;
+					this.infolist = JSON.parse(res.data.params.terminalRes);
+					this.infodatas = this.infolist.factoryList;//组件数据
+					this.allsum = this.infolist.allsum;//合计总价
+					this.suppinfo = this.infolist.suppinfo;//供应商
+					this.woTypeCode = this.infolist.woTypeCode*1;//类型
+					this.otherinfo = this.infolist.otherinfo;//类型
+					this.status = true;
+					this.infolist.procId = infolist.procId;
+					this.infolist.procVersion = infolist.procVersion;
+					this.remark = infolist.remark;
+					this.infolist.stepId = infolist.stepId;
+					this.infolist.taskId = infolist.taskId;
+					this.infolist.taskName = infolist.taskName;
+					this.infolist.opName = infolist.opName;
+					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;
+						}
+					} 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 = '上刊用印';
+					}
+					this.datalist.attList = JSON.parse(res.data.params.attList);
+					this.attList = [];
+					this.fileInfo.fileList = [];
+					this.datalist.attList.forEach(item => {
+						item.id = item.attchFileId;
+						this.fileInfo.fileList.push({
+							name: item.fileName,
+							url: '',
+							id: item.id,
+							attchFileId: item.attchFileId,
+							fileName: item.fileName
+						});
+						this.attList.push({
+							name: item.fileName,
+							url: '',
+							id: item.id,
+							attchFileId: item.attchFileId,
+							fileName: item.fileName
+						});
+					})
+					this.rovaList = res.data.taskList;
+					this.uploadstatus = true;
+				});
+			},
+			//审批
+			dialogCli(v,n) {
+				this.dialogStatus = false;
+				this.status = false;
+				if (v === 3) {
+					this.infolist = {};
+					this.attList = [];
+					this.fileInfo.fileList = [];
+					return
+				}
+				let _this = this;
+				this.infolist.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss")
+				if (v === 1) {
+					let params = {
+						dealType: '1',
+						dealTypeDesc: '打回',
+						procId: this.infolist.procId,
+						procVersion: this.infolist.procVersion,
+						remark: this.remark,
+						stepId: this.infolist.stepId,
+						taskId: this.infolist.taskId,
+						taskName: this.infolist.taskName,
+						opName: this.infolist.opName,
+						opNo: this.opno,
+						opTime: this.infolist.opTime,
+						params: {
+							procExeCondiVal: '不同意',
+							terminalRes: JSON.stringify(this.infolist),
+							assigneeNo: this.opno,
+							assigneeName: this.opname,
+						},
+						woNo: this.infolist.woNo,
+					}
+					if(n == 1){
+						this.$http({
+							url: '/bpm/api/submitTask',
+							method: "post",
+							headers: {
+								"Content-Type": "application/json",
+							},
+							data: params,
+						}).then((res) => {
+							if (res.data.result === 1) {
+								_this.$message({
+									message: res.data.desc,
+									type: 'error'
+								});
+							} else {
+								_this.closedia();
+								_this.infolist = {};
+								_this.attList = [];
+								_this.fileInfo.fileList = [];
+								_this.getList(this.params, this.pageSize);
+							}
+						});
+					}else{
+						this.submitInfo("/bpm/api/submitTask", params);
+					}
+				} else if (v === 2) {
+					let param = {
+						dealType: '0',
+						dealTypeDesc: '提交',
+						procId: this.infolist.procId,
+						procVersion: this.infolist.procVersion,
+						remark: this.remark,
+						stepId: this.infolist.stepId,
+						taskId: this.infolist.taskId,
+						taskName: this.infolist.taskName,
+						opName: this.infolist.opName,
+						opNo: this.opno,
+						opTime: this.infolist.opTime,
+						params: {
+							woType: this.infolist.woType,
+							terminalRes: JSON.stringify(this.infolist),
+						},
+						woNo: this.infolist.woNo,
+
+					}
+					if (this.vision == '审批' && this.visionsts == '2') {
+						param.params.assigneeNo = this.opno;
+						param.params.assigneeName = this.opname;
+					}
+					if (this.vision == '流程发起') {
+						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,
+							});
+						}
+						param.params.attList = JSON.stringify(attList)
+					}
+					this.submitInfo("/bpm/api/submitTask", param);
+				}
+			},
+			//添加
+			dialogCliadd(v) {
+				let _this = this;
+				let info = {};
+				info.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss");
+				this.infolist.atime = _this.$formatDate(this.infolist.atime, "YYYY-MM-DD");
+				this.infolist.btime = _this.$formatDate(this.infolist.btime, "YYYY-MM-DD");
+				info.opNo = this.userInfo.loginNo;
+				info.opName = this.userInfo.loginName;
+				info.woTitle = this.infolist.woName;
+				info.params = {};
+				info.params.terminalRes = this.infolist;
+				let infodatas = [];
+				for (let i = 0; i < this.infodatas.length; i++) {
+					// if (this.infodatas[i].factoryName || this.infodatas[i].assessTime || this.infodatas[i].assessScore ||
+					// 	this.infodatas[i].followAction) {
+					// 	this.infodatas[i].assessTime = this.infodatas[i].assessTime ? this.$formatDate(this.infodatas[i]
+					// 		.assessTime, "YYYY-MM-DD HH:mm:ss") : '';
+					// }
+					infodatas.push(this.infodatas[i])
+				}
+				info.params.terminalRes.factoryList = infodatas;
+				info.params.terminalRes.allsum = this.allsum;
+				info.params.terminalRes.woTypeCode = this.woTypeCode;
+				info.params.terminalRes.suppinfo = this.suppinfo;
+				info.params.terminalRes.otherinfo = this.otherinfo;
+				info.procId = this.terminal;
+				for (let i = 0; i < this.options.length; i++) {
+					if (this.terminal == this.options[i].procId) {
+						info.procName = this.options[i].procName;
+						info.procVersion = this.options[i].procVersion;
+					}
+				}
+				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,
+					});
+				}
+				info.params.attList = JSON.stringify(attList)
+				info.params.terminalRes = JSON.stringify(info.params.terminalRes);
+				this.submitInfo("/bpm/api/startProc", info);
+			},
+
+			submitInfo(u, v) {
+				let _this = this;
+				this.$refs.infolist.validate(valid => {
+					if(this.suppinfo.surplusSum < this.allsum){
+						this.$message({
+							message: '供应商剩余预算不足!',
+							type: 'error'
+						});
+						return
+					}
+					this.$http({
+						url: "/market/cAdvPubBudget/queryPage",
+						method: "post",
+						headers: {
+							"Content-Type": "application/json",
+							"page": '{"pageNo":"' + 1 + '","pageSize":"1000"}'
+						},
+						data: {},
+					}).then((res) => {
+						if(res.data.data[0].surplusSum < _this.allsum){
+							_this.$message({
+								message: '地市预算不足!',
+								type: 'error'
+							});
+						}
+					});
+					
+					if (valid) {
+						this.$http({
+							url: u,
+							method: "post",
+							headers: {
+								"Content-Type": "application/json",
+							},
+							data: v,
+						}).then((res) => {
+							if (res.data.result === 1) {
+								_this.$message({
+									message: res.data.desc,
+									type: 'error'
+								});
+							} else {
+								_this.$message({
+									message: '成功',
+									type: 'success'
+								});
+								_this.closedia();
+								_this.infolist = {};
+								_this.attList = [];
+								_this.fileInfo.fileList = [];
+								_this.getList(this.params, this.pageSize);
+							}
+
+						});
+					}
+				})
+			},
+			getStanding(v) {
+				if (v == 1) {
+					this.$router.push({
+						path: '/advgys',
+					});
+					this.setabList('供应商管理', '/advgys');
+				} else {
+					this.$router.push({
+						path: '/advysx',
+					});
+					this.setabList('预算及上限', '/advysx');
+				}
+			},
+			setabList(n, p) {
+				let params = {
+					children: "",
+					name: n,
+					rountPath: p,
+					target: "_self",
+				};
+				for (let i = 0; i < this.$store.state.tabList.length; i++) {
+					if (this.$store.state.tabList[i].name === params.name) {
+						this.$store.state.tabList[i] = params;
+					}
+				}
+				let set = new Set([...this.$store.state.tabList, params]);
+				set.add(params);
+				this.$store.commit("setDefaultActive", params.rountPath);
+				this.$store.commit("setTabList", Array.from(set));
+			},
+			//流程
+			getTermianl() {
+				this.$http({
+					url: "/bpm/api/queryBpmProcList",
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+						"page": '{"pageNo":"' + 1 + '","pageSize":"100"}'
+					},
+					data: {},
+				}).then((res) => {
+					this.options = res.data.data;
+				});
+			},
+			closeMessage(v) {
+				this.centerDialogVisible = false;
+				let _this = this;
+				if (v === 1) {
+					this.dialogCli(1,1);
+				}
+			},
+			//删除
+			delLine(v,n) {
+				this.centerDialogVisible = true;
+				this.messTit = '即将撤销此条数据, 是否撤销?';
+				this.delid = v;
+				let infolist = Object.assign({}, n);
+				this.vision = '';
+				this.visionsts = '';
+				this.infodatas = [{}, {}];
+				this.$http({
+					url: '/bpm/api/taskInit',
+					method: "post",
+					headers: {
+						"Content-Type": "application/json",
+					},
+					data: {
+						woNo: n.woNo
+					},
+				}).then((res) => {
+					this.terminal = infolist.procId;
+					this.opname = res.data.opName;
+					this.opno = res.data.opNo;
+					this.infolist = JSON.parse(res.data.params.terminalRes);
+					this.infolist.procId = infolist.procId;
+					this.infolist.procVersion = infolist.procVersion;
+					this.infolist.stepId = res.data.taskList[res.data.taskList.length - 1].stepId;
+					this.infolist.taskId = res.data.taskList[res.data.taskList.length - 1].taskId;
+					this.infolist.taskName = res.data.taskList[res.data.taskList.length - 1].taskName;
+					this.infolist.opName = infolist.opName;
+					this.infolist.opNo = infolist.opNo;
+					this.infolist.opTime = infolist.opTime;
+					this.infolist.woNo = infolist.woNo;
+					this.datalist.attList = JSON.parse(res.data.params.attList);
+					this.remark = '';
+				});
+			},
+			//文件返回值
+			uploadBack(v) {
+				this.attList = v;
+			},
+			//功能栏
+			iconCli(v) {
+				if (v === 1) {
+					this.getList(this.params, this.pageSize);
+				}
+				if (v === 2) {
+					this.fullscreen = !this.fullscreen
+				}
+			},
+			getUser() {
+				this.userInfo = JSON.parse(window.sessionStorage.userInfo);
+
+			}
+		},
+		mounted() {
+			this.getList({}, 1);
+			this.getUser();
+			this.getTermianl();
+		},
+		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;
+			}
+		}
+	}
+
+	.tabbox {
+		margin-top: 15px;
+	}
+
+	.pageBox {
+		text-align: right;
+		margin-top: 10px;
+	}
+
+	.info-line {
+		width: 100%;
+		display: block;
+		padding-left: 20px;
+
+		div {
+			width: 50%;
+			display: inline-block;
+		}
+
+		span {
+			width: 100px;
+			display: inline-block;
+			text-align: left;
+
+			i {
+				color: red;
+				display: inline-block;
+				padding-right: 5px;
+			}
+		}
+
+		.el-select,
+		.el-input {
+			width: calc(100% - 120px);
+		}
+	}
+
+	.online {
+		width: 100%;
+
+		.el-select {
+			width: calc(100% - 120px);
+		}
+
+		span {
+			vertical-align: top;
+		}
+
+		.el-textarea {
+			width: calc(100% - 120px);
+		}
+	}
+
+	.adv-type {
+		margin-top: 20px;
+		display: flex;
+		justify-content: space-between;
+		flex-wrap: wrap;
+		// border: 1px solid #ddd;
+		border-radius: 5px;
+		padding: 20px;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+
+		div {
+			width: 33%;
+			text-align: center;
+			height: 80px;
+			overflow: hidden;
+			min-width: 100px;
+			cursor: pointer;
+			padding-top: 10px;
+			margin: 10px 0;
+		}
+
+		div:hover {
+			background: #CFE8FC;
+			border-radius: 5px;
+		}
+
+		span {
+			width: 100%;
+			display: inline-block;
+			height: 40px;
+
+			// line-height: 40px;
+			i {
+				color: #0074D9;
+				font-size: 36px;
+			}
+		}
+	}
+</style>

+ 455 - 0
src/pages/main/advReleaseAppro/internet.vue

@@ -0,0 +1,455 @@
+<template>
+	<!-- 互联网刊确认单样例 -->
+	<div style="margin: 5px 0 20px 0;padding: 0 20px;" class='ggtabinp'>
+
+		<el-table class="com-table" :data="infodata" tooltip-effect="dark" size="small" border style="width: 100%">
+
+			<el-table-column prop="media_type" label="媒体类别" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.mediaType" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="media_name" label="媒体名称" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.mediaName" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="project_name" label="项目名称" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.projectName" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="put_site" label="投放位置" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putSite" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="adv_link" label="广告目标链接地址" width="300">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advLink" :disabled="titname != '添加'&&vision != '流程发起'">
+					</el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="put_form" label="投放形式" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putForm" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			
+			<el-table-column prop="material_req" label="物料要求" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.materialReq" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="terminal_type" label="pc/wep/app/SEM" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.terminalType" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="put_unit" label="投放单位(CPM,CPD等)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putUnit" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="area_location" label="区域定位" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.areaLocation" :disabled="titname != '添加'&&vision != '流程发起'">
+					</el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="average_click" label="日均点击量预估" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.averageClick" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="average_exposure" label="日均曝光量预估" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.averageExposure" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="monitor_click" label="可添加第三方曝光监测(是/否)" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.monitorClick" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="monitor_exposure" label="可添加第三方点击监测(是/否)" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.monitorExposure" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="exposureSum" label="总曝光" width="100"></el-table-column>
+
+			<el-table-column prop="d1" label="1日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d1" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d2" label="2日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d2" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d3" label="3日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d3" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d4" label="4日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d4" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d5" label="5日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d5" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d6" label="6日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d6" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d7" label="7日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d7" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d8" label="8日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d8" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d9" label="9日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d9" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d10" label="10日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d10" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d11" label="11日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d11" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d12" label="12日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d12" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d13" label="13日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d13" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d14" label="14日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d14" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d15" label="15日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d15" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d16" label="16日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d16" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d17" label="17日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d17" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d18" label="18日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d18" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d19" label="19日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d19" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d20" label="20日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d20" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d21" label="21日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d21" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d22" label="22日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d22" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d23" label="23日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d23" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d24" label="24日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d24" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d25" label="25日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d25" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d26" label="26日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d26" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d27" label="27日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d27" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d28" label="28日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d28" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d29" label="29日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d29" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d30" label="30日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d30" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="d31" label="31日" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.d31" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumday(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="unitPrice" label="刊例单价" width="100">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.unitPrice" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumprice(scope)"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column prop="remark" label="备注" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.remark" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+
+			<el-table-column label="媒体总价(人民币)" align="center">
+				<el-table-column prop="discountRate" label="折扣(%)" width="100">
+					<template slot-scope="scope">
+						<el-input v-model="scope.row.discountRate" :disabled="titname != '添加'&&vision != '流程发起'" type="number"
+						@change="sumprice(scope)"></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="discountPrice" label="折后价格" width="100"></el-table-column>
+				<el-table-column prop="buyPrice" label="购买总价" width="100"></el-table-column>
+			</el-table-column>
+
+			<el-table-column label="操作" width="120px" align="center" v-if="titname == '添加'" fixed="right">
+				<template slot-scope="scope">
+					<el-button size="mini" type="primary" @click="choline(1,scope)">添加</el-button>
+					<el-button size="mini" type="danger" @click="choline(2,scope)">删除</el-button>
+				</template>
+			</el-table-column>
+
+		</el-table>
+		<div class="sumbox">总价:{{allsum}}</div>
+	</div>
+
+</template>
+
+<script>
+	export default {
+		props: ["vision", "titname","infodatas","status","allsumnum"],
+		data() {
+			return {
+				infodata: [],
+				allsum: 0
+			};
+		},
+		methods: {
+			choline(v, n) {
+				if (v == 1) {
+					this.infodata.push({exposureSum:0,discountPrice:0,buyPrice:0,discountRate:0})
+				} else {
+					this.infodata.splice(n.$index, 1)
+				}
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].buyPrice;
+				}
+			},
+			sumprice(v){
+				let info = this.infodata[v.$index];
+				
+				this.infodata[v.$index].discountPrice = info.unitPrice*info.discountRate/100;
+				this.infodata[v.$index].discountPrice = Math.floor(this.infodata[v.$index].discountPrice * 100) / 100;
+				
+				this.infodata[v.$index].buyPrice = info.discountPrice*info.exposureSum;
+				this.infodata[v.$index].buyPrice = Math.floor(this.infodata[v.$index].buyPrice * 100) / 100;
+				
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].buyPrice;
+				}
+			},
+			sumday(v) {
+				let info = this.infodata[v.$index];
+				this.infodata[v.$index].exposureSum = 0;
+				info.d1 ? this.infodata[v.$index].exposureSum += info.d1 * 1 : '';
+				info.d2 ? this.infodata[v.$index].exposureSum += info.d2 * 1 : '';
+				info.d3 ? this.infodata[v.$index].exposureSum += info.d3 * 1 : '';
+				info.d4 ? this.infodata[v.$index].exposureSum += info.d4 * 1 : '';
+				info.d5 ? this.infodata[v.$index].exposureSum += info.d5 * 1 : '';
+				info.d6 ? this.infodata[v.$index].exposureSum += info.d6 * 1 : '';
+				info.d7 ? this.infodata[v.$index].exposureSum += info.d7 * 1 : '';
+				info.d8 ? this.infodata[v.$index].exposureSum += info.d8 * 1 : '';
+				info.d9 ? this.infodata[v.$index].exposureSum += info.d9 * 1 : '';
+				info.d10 ? this.infodata[v.$index].exposureSum += info.d10 * 1 : '';
+				info.d11 ? this.infodata[v.$index].exposureSum += info.d11 * 1 : '';
+				info.d12 ? this.infodata[v.$index].exposureSum += info.d12 * 1 : '';
+				info.d13 ? this.infodata[v.$index].exposureSum += info.d13 * 1 : '';
+				info.d14 ? this.infodata[v.$index].exposureSum += info.d14 * 1 : '';
+				info.d15 ? this.infodata[v.$index].exposureSum += info.d15 * 1 : '';
+				info.d16 ? this.infodata[v.$index].exposureSum += info.d16 * 1 : '';
+				info.d17 ? this.infodata[v.$index].exposureSum += info.d17 * 1 : '';
+				info.d18 ? this.infodata[v.$index].exposureSum += info.d18 * 1 : '';
+				info.d19 ? this.infodata[v.$index].exposureSum += info.d19 * 1 : '';
+				info.d20 ? this.infodata[v.$index].exposureSum += info.d20 * 1 : '';
+				info.d21 ? this.infodata[v.$index].exposureSum += info.d21 * 1 : '';
+				info.d22 ? this.infodata[v.$index].exposureSum += info.d22 * 1 : '';
+				info.d23 ? this.infodata[v.$index].exposureSum += info.d23 * 1 : '';
+				info.d24 ? this.infodata[v.$index].exposureSum += info.d24 * 1 : '';
+				info.d25 ? this.infodata[v.$index].exposureSum += info.d25 * 1 : '';
+				info.d26 ? this.infodata[v.$index].exposureSum += info.d26 * 1 : '';
+				info.d27 ? this.infodata[v.$index].exposureSum += info.d27 * 1 : '';
+				info.d28 ? this.infodata[v.$index].exposureSum += info.d28 * 1 : '';
+				info.d29 ? this.infodata[v.$index].exposureSum += info.d29 * 1 : '';
+				info.d30 ? this.infodata[v.$index].exposureSum += info.d30 * 1 : '';
+				info.d31 ? this.infodata[v.$index].exposureSum += info.d31 * 1 : '';
+				this.infodata[v.$index].buyPrice = info.discountPrice*info.exposureSum;
+				this.infodata[v.$index].buyPrice = Math.floor(this.infodata[v.$index].buyPrice * 100) / 100;
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].buyPrice;
+				}
+			}
+		},
+		mounted() {},
+		created() {
+			this.infodata = [{exposureSum:0,discountPrice:0,buyPrice:0,discountRate:0}, {exposureSum:0,discountPrice:0,buyPrice:0,discountRate:0}];
+			if(this.status){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		},
+		watch:{
+			allsum(v){
+				this.$emit('backsum',this.allsum,this.infodata)
+			},
+			status(v){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.sumbox {
+		width: 200px;
+		background: aliceblue;
+		float: right;
+		padding: 5px;
+		margin: 20px 0;
+		font-size: 18px;
+	}
+</style>

+ 238 - 0
src/pages/main/advReleaseAppro/outdoors.vue

@@ -0,0 +1,238 @@
+<template>
+	<!-- 户外广告上刊确认单样例 -->
+	<div style="margin: 5px 0 20px 0;padding: 0 20px;" class='ggtabinp'>
+		<el-table class="com-table" ref="multipleTable" :data="infodata" tooltip-effect="dark" size="small" border
+			style="width: 100%">
+			<el-table-column prop="media_type_name" label="媒体类别" width="200">
+				<template slot-scope="scope">
+					<el-select clearable v-model="scope.row.mediaTypeName" :disabled="titname != '添加'&&vision != '流程发起'">
+						<el-option v-for="items in mediaType" :key="items.dataCode" :label="items.dataName" :value="items.dataCode">
+						</el-option>
+					</el-select>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_site" label="广告位置" width="300">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advSite" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="picture_size" label="画面尺寸" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.pictureSize" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="screen_num" label="屏数" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.screenNum" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="media_site" label="媒体位置" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.mediaSite" :disabled="titname != '添加'&&vision != '流程发起'">
+					</el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_length" label="广告长度(秒/次)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advLength" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="frequency" label="频次(次/天/台)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.frequency" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_price" label="刊例价格(元/周)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advPrice" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="pub_week" label="发布小计(周)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.pubWeek" :disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column label="广告发布期" align="center">
+				<el-table-column prop="start_time" label="起始日" width="200">
+					<template slot-scope="scope">
+						<el-date-picker :disabled="titname != '添加'&&vision != '流程发起'" v-model="scope.row.startTime"
+							type="date">
+						</el-date-picker>
+					</template>
+				</el-table-column>
+				<el-table-column prop="end_time" label="到期日" width="200">
+					<template slot-scope="scope">
+						<el-date-picker :disabled="titname != '添加'&&vision != '流程发起'" v-model="scope.row.endTime"
+							type="date">
+						</el-date-picker>
+					</template>
+				</el-table-column>
+			</el-table-column>
+
+
+			<el-table-column prop="pub_price" label="广告发布费小计(元)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.pubPrice" :disabled="titname != '添加'&&vision != '流程发起'"
+						@change="sumzkj(scope)" type="number"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="discount_rate" label="优惠折扣" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.discountRate" :disabled="titname != '添加'&&vision != '流程发起'"
+						@change="sumzkj(scope)" type="number"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="discountPrice" label="折扣价(元)" width="200"></el-table-column>
+
+
+			<el-table-column label="操作" width="120px" align="center" v-if="titname == '添加'" fixed="right">
+				<template slot-scope="scope">
+					<el-button size="mini" type="primary" @click="choline(1,scope)">添加</el-button>
+					<el-button size="mini" type="danger" @click="choline(2,scope)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+		<div class="box">
+			<span class="sumbox">广告发布费(刊例价):{{advPriceSum}}</span>
+			<span class="sumbox">广告发布费(折扣价):{{advDiscountSum}}</span>
+			<span class="sumbox">其他优惠:<el-input v-model="otherDiscount" :disabled="titname != '添加'&&vision != '流程发起'"
+						@change="sumadd" type="number" style="width: 100px;"></el-input></span>
+			<span class="sumbox">广告发布费:{{contractAdvCost}}</span>
+			<span class="sumbox">税费:{{contractAdvTax}}</span>
+			<span class="sumbox">合同总价款:{{contractCost}}</span>
+		</div>
+	</div>
+
+</template>
+
+<script>
+	export default {
+		props: ["vision", "titname", "taxRate","infodatas","status","allsumnum","otherinfo"],
+		data() {
+			return {
+				infodata: [],
+				contractCost: 0,
+				advPriceSum: 0,
+				advDiscountSum: 0,
+				contractAdvCost: 0,
+				contractAdvTax: 0,
+				otherDiscount: 0,
+				mediaType:[]
+			};
+		},
+		methods: {
+			choline(v, n) {
+				if (v == 1) {
+					this.infodata.push({
+						pubPrice: 0,
+						discountRate: 0,
+						discountPrice: 0
+					})
+				} else {
+					this.infodata.splice(n.$index, 1)
+				}
+				this.sumadd();
+			},
+			sumzkj(v) {
+				let info = this.infodata[v.$index];
+				this.infodata[v.$index].discountPrice = info.pubPrice * info.discountRate / 100;
+				this.infodata[v.$index].discountPrice = Math.floor(this.infodata[v.$index].discountPrice * 100) / 100;
+				this.sumadd();
+			},
+			sumadd(){
+				this.advPriceSum = 0;
+				this.advDiscountSum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.advPriceSum += this.infodata[i].pubPrice * 1;
+					this.advDiscountSum += this.infodata[i].discountPrice;
+				}
+				this.contractAdvCost = (this.advDiscountSum - this.otherDiscount) / (this.taxRate.split("%")[0]*1 + 100) * 100;
+				this.contractAdvTax = this.contractAdvCost*(this.taxRate.split("%")[0]*1)/100;
+				this.contractAdvCost = Math.round(this.contractAdvCost * 100) / 100;
+				this.contractAdvTax = Math.round(this.contractAdvTax * 100) / 100;
+				this.contractCost = this.contractAdvCost + this.contractAdvTax;
+			},
+			gettype(){
+				this.$http({
+				    url: "/market/cfgDataDict/queryList",
+				    method: "post",
+				    headers: {
+				        "Content-Type": "application/json",
+				    },
+				    data: {
+				        dictCode: 'mediaType'
+				    },
+				}).then((res) => {
+				    this.mediaType = res.data;
+				});
+			}
+		},
+		mounted() {},
+		created() {
+			this.infodata = [{
+				pubPrice: 0,
+				discountRate: 0,
+				discountPrice: 0
+			}, {
+				pubPrice: 0,
+				discountRate: 0,
+				discountPrice: 0
+			}];
+			this.gettype();
+			if(this.status){
+				this.infodata = this.infodatas;
+				this.contractCost = this.allsumnum;
+				this.advPriceSum = this.otherinfo.advPriceSum;
+				this.advDiscountSum = this.otherinfo.advDiscountSum;
+				this.contractAdvCost = this.otherinfo.contractAdvCost;
+				this.contractAdvTax = this.otherinfo.contractAdvTax;
+				this.otherDiscount = this.otherinfo.otherDiscount;
+			}
+		},
+		watch: {
+			contractCost(v) {
+				let x= {
+					advPriceSum: this.advPriceSum,
+					advDiscountSum: this.advDiscountSum,
+					contractAdvCost: this.contractAdvCost,
+					contractAdvTax: this.contractAdvTax,
+					otherDiscount: this.otherDiscount
+				}
+				this.$emit('backsum', this.contractCost,this.infodata,x)
+			},
+			taxRate(){
+				this.sumadd();
+			},
+			status(v){
+				this.infodata = this.infodatas;
+				this.contractCost = this.allsumnum;
+				this.advPriceSum = this.otherinfo.advPriceSum;
+				this.advDiscountSum = this.otherinfo.advDiscountSum;
+				this.contractAdvCost = this.otherinfo.contractAdvCost;
+				this.contractAdvTax = this.otherinfo.contractAdvTax;
+				this.otherDiscount = this.otherinfo.otherDiscount;
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.box {
+		display: flex;
+		justify-content: space-between;
+		background: aliceblue;
+		margin: 20px 0;
+		align-items: center;
+		flex-wrap: wrap;
+	}
+
+	.sumbox {
+		// width: 200px;
+		float: right;
+		padding: 5px;
+		font-size: 18px;
+	}
+	.el-date-editor{
+		width: 178px!important;
+	}
+</style>

+ 136 - 0
src/pages/main/advReleaseAppro/paper.vue

@@ -0,0 +1,136 @@
+<template>
+	<!-- 纸媒上刊确认单样例 -->
+	<div style="margin: 5px 0 20px 0;padding: 0 20px;">
+		<el-table class="com-table" ref="multipleTable" :data="infodata" tooltip-effect="dark"
+			size="small" border style="width: 100%">
+			<el-table-column prop="media_name" label="投放媒体" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.mediaName"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_theme" label="广告主题" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advTheme"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="put_time" label="投放日期" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putTime"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="put_spec" label="投放规格" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putSpec"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_size" label="广告尺寸" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advSize" :disabled="titname != '添加'&&vision != '流程发起'">
+					</el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_site" label="广告位置" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advSite"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_color" label="广告颜色" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advColor"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="cost_all" label="费用(不含税,元)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.costAll"
+						:disabled="titname != '添加'&&vision != '流程发起'" @change="sumfyno"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="cost_tax" label="费用(含税,元)" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.costTax"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="remark" label="备注" width="300">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.remark"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+	
+			<el-table-column label="操作" width="120px" align="center" v-if="titname == '添加'"
+				fixed="right">
+				<template slot-scope="scope">
+					<el-button size="mini" type="primary" @click="choline(1,scope)">添加</el-button>
+					<el-button size="mini" type="danger" @click="choline(2,scope)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+		<div class="sumbox">总价:{{allsum}}</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: ["vision", "titname","infodatas","status","allsumnum"],
+		data() {
+			return {
+				infodata: [],
+				allsum: 0
+			};
+		},
+		methods: {
+			choline(v, n) {
+				if (v == 1) {
+					this.infodata.push({costAll:0})
+				} else {
+					this.infodata.splice(n.$index, 1)
+				}
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].costAll*1;
+				}
+			},
+			sumfyno(){
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].costAll*1;
+				}
+			}
+		},
+		mounted() {},
+		created() {
+			this.infodata = [{costAll:0}, {costAll:0}];
+			if(this.status){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		},
+		watch:{
+			allsum(v){
+				this.$emit('backsum',this.allsum,this.infodata)
+			},
+			status(v){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.sumbox {
+		width: 200px;
+		background: aliceblue;
+		float: right;
+		padding: 5px;
+		margin: 20px 0;
+		font-size: 18px;
+	}
+</style>

+ 151 - 0
src/pages/main/advReleaseAppro/television.vue

@@ -0,0 +1,151 @@
+<template>
+	<!-- 广播及电视上刊确认单样例 -->
+	<div style="margin: 5px 0 20px 0;padding: 0 20px;">
+		<el-table class="com-table" ref="multipleTable" :data="infodata" tooltip-effect="dark"
+			size="small" border style="width: 100%">
+			<el-table-column prop="media_name" label="媒体" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.mediaName"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="infoCode" label="栏目" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.lm"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_form" label="具体形式" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advForm"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="put_spec" label="规格" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putSpec"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="put_cycle" label="发布周期" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putCycle" :disabled="titname != '添加'&&vision != '流程发起'">
+					</el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="put_freq" label="频次" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.putFreq"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="start_time" label="时段" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.startTime"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="adv_price" label="刊例价" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.advPrice"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column prop="discount_rate" label="折扣" width="200">
+				<template slot-scope="scope">
+					<el-input v-model="scope.row.discountRate"
+						:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column label="结算" align="center">
+				<el-table-column prop="num_days" label="天数" width="100">
+					<template slot-scope="scope">
+						<el-input v-model="scope.row.numDays"
+							:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="cost_tax" label="金额(含税)" width="100">
+					<template slot-scope="scope">
+						<el-input v-model="scope.row.costTax"
+							:disabled="titname != '添加'&&vision != '流程发起'"></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="cost_all" label="金额(不含税)" width="100">
+					<template slot-scope="scope">
+						<el-input v-model="scope.row.costAll"
+							:disabled="titname != '添加'&&vision != '流程发起'" @change="sumjeno">
+						</el-input>
+					</template>
+				</el-table-column>
+			</el-table-column>
+	
+			<el-table-column label="操作" width="120px" align="center" v-if="titname == '添加'"
+				fixed="right">
+				<template slot-scope="scope">
+					<el-button size="mini" type="primary" @click="choline(1,scope)">添加</el-button>
+					<el-button size="mini" type="danger" @click="choline(2,scope)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+		<div class="sumbox">总价:{{allsum}}</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: ["vision", "titname","infodatas","status","allsumnum"],
+		data() {
+			return {
+				infodata: [],
+				allsum: 0
+			};
+		},
+		methods: {
+			choline(v, n) {
+				if (v == 1) {
+					this.infodata.push({costAll:0})
+				} else {
+					this.infodata.splice(n.$index, 1)
+				}
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].costAll*1;
+				}
+			},
+			sumjeno(){
+				this.allsum = 0;
+				for (let i = 0; i < this.infodata.length; i++) {
+					this.allsum += this.infodata[i].costAll*1;
+				}
+			}
+		},
+		mounted() {},
+		created() {
+			this.infodata = [{costAll:0}, {costAll:0}];
+			if(this.status){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		},
+		watch:{
+			allsum(v){
+				this.$emit('backsum',this.allsum,this.infodata)
+			},
+			status(v){
+				this.infodata = this.infodatas;
+				this.allsum = this.allsumnum;
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.sumbox {
+		width: 200px;
+		background: aliceblue;
+		float: right;
+		padding: 5px;
+		margin: 20px 0;
+		font-size: 18px;
+	}
+</style>

+ 29 - 7
src/pages/main/demandDevelop/index.vue

@@ -116,7 +116,7 @@
 						</myUpload>
 					</div>
 
-
+					<myUpload v-if="vision == '信息补填'" style="float: right;margin-bottom: 20px;" @uploadBack="uploadBackin" :fileInfo="fileInfoin" :fileList="fileInfoin.fileList"></myUpload>
 					<div style="margin: 20px 0;padding: 0 20px;" v-if="vision == '信息补填'">
 						<el-table class="com-table" ref="multipleTable" :data="infodatas" tooltip-effect="dark"
 							size="small" border style="width: 100%">
@@ -321,7 +321,15 @@
 				treeListonly: {},
 				defaultList: [],
 				closeList: false,
-				depttype: 0
+				depttype: 0,
+				fileInfoin: {
+				    type: 'btn',
+				    typename: '导入',
+				    btntype: 'primary',
+				    limit: 1,
+				    url: '/market/cChannelDemand/demandCarryImport',
+				    fileList: []
+				},
 			}
 		},
 		methods: {
@@ -414,6 +422,9 @@
 					this.infolist.opNo = infolist.opNo;
 					this.infolist.opTime = infolist.opTime;
 					this.infolist.woNo = infolist.woNo;
+					this.busiTime = [];
+					this.busiTime[0] = this.infolist.busiStartTime;
+					this.busiTime[1] = this.infolist.busiEndTime;
 					if (res.data.taskList[res.data.taskList.length - 1].taskName == '流程发起') {
 						this.vision = '流程发起';
 						if(this.titname == '审批'){
@@ -425,7 +436,7 @@
 					} 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 == '主管副总终审') {
+					} else if (res.data.taskList[res.data.taskList.length - 1].taskName == '主管副总终审'||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 == '需求预评估') {
@@ -474,7 +485,6 @@
 						});
 					})
 					this.rovaList = res.data.taskList;
-					console.log(this.rovaList)
 					this.uploadstatus = true;
 				});
 			},
@@ -616,7 +626,9 @@
 						attchFileId: this.attList[i].attchFileId,
 					});
 				}
-				info.params.attList = JSON.stringify(attList)
+				let fillList = [{},{}];
+				info.params.fillList = JSON.stringify(fillList);
+				info.params.attList = JSON.stringify(attList);
 				info.params.terminalRes = JSON.stringify(info.params.terminalRes);
 				this.checkexa = false;
 				this.submitInfo("/bpm/api/startProc", info);
@@ -657,9 +669,9 @@
 			},
 			getStanding() {
 				this.$router.push({
-					path: '/yStanding',
+					path: '/ywStanding',
 				});
-				this.setabList('运营流程台账', '/yStanding');
+				this.setabList('线上业务需求台账', '/ywStanding');
 			},
 			setabList(n, p) {
 				let params = {
@@ -731,6 +743,16 @@
 			uploadBack(v) {
 				this.attList = v;
 			},
+			uploadBackin(v) {
+				let x = [];
+				for(let i=1;i<v.data.body.length;i++){
+					x.push({
+						factoryName:v.data.body[i].factoryName,
+						workLoad:v.data.body[i].workLoad
+					})
+				}
+				this.infodatas = x;
+			},
 			//功能栏
 			iconCli(v) {
 				if (v === 1) {

+ 287 - 0
src/pages/main/demandDevelop/ywStanding.vue

@@ -0,0 +1,287 @@
+<template>
+    <fullscreen :fullscreen.sync="fullscreen" class="container">
+        <div class="container-box">
+            <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="outlist">导出
+                </el-button>
+            </div>
+            <div class="tabbox">
+                <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
+                    tooltip-effect="dark" size="small" border style="width: 100%">
+                    <el-table-column prop="demandName" label="需求名称">
+                    </el-table-column>
+                    <el-table-column prop="deptName" label="提出部门/地市">
+                    </el-table-column>
+                    <el-table-column prop="busiStartTime" label="时间段">
+						<template slot-scope="scope">
+							{{scope.row.busiStartTime + '~' + scope.row.busiEndTime}}
+						</template>
+                    </el-table-column>
+                    <el-table-column prop="factoryName" label="支撑方">
+                    </el-table-column>
+					<el-table-column prop="workLoad" label="工作量">
+                    </el-table-column>
+                </el-table>
+                <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
+                    :total="total">
+                </el-pagination>
+            </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: '32%',
+				},{
+					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: []
+            }
+        },
+        methods: {
+			//搜索数据
+			searchInfo(v) {
+				this.params = {};
+				v[0] ? this.params.demandName = v[0] : '';
+				v[1] ? this.params.busiStartTimeTo = v[1] : '';
+				v[2] ? this.params.busiEndTimeFrom = v[2]:'';
+				this.getList(this.params, this.pageSize);
+			},
+            //获取列表
+            getList(v, n) {
+				v.sts = 1;
+                this.pageSize = n;
+                let _this = this;
+                this.$http({
+                    url: "/market/cChannelDemand/queryPage",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                        "page": '{"pageNo":"' + n + '","pageSize":"10"}'
+                    },
+                    data: v,
+                }).then((res) => {
+                    this.tableData = res.data.data;
+                    this.total = res.data.totalRecord;
+                });
+            },
+            // 分页
+            currchange(v) {
+                this.pageSize = v;
+                this.getList(this.params, this.pageSize);
+            },
+            //功能栏
+            iconCli(v) {
+                if (v === 1) {
+                    this.getList(this.params, this.pageSize);
+                }
+                if (v === 2) {
+                    this.fullscreen = !this.fullscreen
+                }
+            },
+            // =======================
+            outlist() {
+                let data = {
+                    colStr: "demandName,deptName,busiStartTime,busiEndTime,factoryName,workLoad",
+                    fileName: "台账.xlsx",
+                    tital: [
+                        [
+                            {
+                                "colNum": "0",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "需求名称"
+                            },
+                            {
+                                "colNum": "1",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "提出部门"
+                            },
+                            {
+                                "colNum": "2",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "开始时间"
+                            },
+                            {
+                                "colNum": "3",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "结束时间"
+                            },
+                            {
+                                "colNum": "4",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "支撑方"
+                            },
+                            {
+                                "colNum": "5",
+                                "colSpan": "0",
+                                "rowSpan": "1",
+                                "val": "工作量"
+                            },
+                        ]
+                    ]
+                }
+                // data.tital = JSON.stringify(data.tital)
+                this.$http({
+                    url: "/market/cChannelDemand/excelExport",
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    responseType: "blob",
+                    data: data,
+                }).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;
+            }
+        }
+    }
+
+    .tabbox {
+        margin-top: 15px;
+    }
+
+    .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);
+        }
+    }
+</style>

+ 4 - 10
src/pages/main/leader/processInitiation.vue

@@ -9,17 +9,11 @@
 						<div v-for="items in item.modList" :key="items.moduleName" class="f-box-info">
 							<el-badge :value="items.noTaskNum" :max="99" :hidden="items.noTaskNum == 0">
 								
-								<!-- <i @click="jumpTo(items)" class="el-icon-document" v-if="items.sts == '0' && items.moduleName == '竞争对手信息上报'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-user" v-if="items.sts == '0' && items.moduleName == '广告宣传设计审批'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-files" v-if="items.sts == '0' && items.moduleName == '广告发布审批及验收'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-document" v-if="items.sts == '0' && items.moduleName == '绩效管理'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-user" v-if="items.sts == '0' && items.moduleName == '预算管理'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-files" v-if="items.sts == '0' && items.moduleName == '科室绩效管理'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-location-information" v-if="items.sts == '0' && items.moduleName == '重点工作清单'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-user" v-if="items.sts == '0' && items.moduleName == '测试资源管理'" style="background: #0b82ff"></i>
-								<i @click="jumpTo(items)" class="el-icon-user" v-if="items.sts == '0' && items.moduleName == '公众号图文协推资料下发'" style="background: #0b82ff"></i> -->
+								<i @click="jumpTo(items)" v-if="items.sts == '0' && items.icon" v-html="items.icon">
+									{{items.icon}}
+								</i>
 									
-								<i @click="jumpTo(items)" :class="'el-icon-user'" v-if="items.sts == '0'" style="background: #0b82ff"></i>
+								<i @click="jumpTo(items)" :class="'el-icon-user'" v-if="items.sts == '0'&& !items.icon" style="background: #0b82ff"></i>
 								<i :class="'iconfont icon-tongji'" v-if="items.sts != '0'" style="background: #ddd"></i>
 								<el-tooltip class="item" effect="dark" :content="items.moduleName" placement="bottom">
 									<span>{{ items.moduleName }}</span>

+ 24 - 0
src/router/index.js

@@ -10,12 +10,36 @@ const routes = [{
     redirect: '/leader',
     children: [
         {
+            meta: { name:  '广告发布审批', keepAlive: false },
+            path: '/advReleaseAppro',
+            name: 'advReleaseAppro',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/advReleaseAppro/index.vue'], resolve)
+        },
+		{
+            meta: { name:  '供应商管理', keepAlive: false },
+            path: '/advgys',
+            name: 'advgys',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/advReleaseAppro/advgys.vue'], resolve)
+        },
+		{
+            meta: { name:  '预算及上限', keepAlive: false },
+            path: '/advysx',
+            name: 'advysx',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/advReleaseAppro/advysx.vue'], resolve)
+        },
+		{
             meta: { name:  '线上渠道业务需求', keepAlive: false },
             path: '/demandDevelop',
             name: 'demandDevelop',
             component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/demandDevelop/index.vue'], resolve)
         },
 		{
+            meta: { name:  '线上业务需求台账', keepAlive: false },
+            path: '/ywStanding',
+            name: 'ywStanding',
+            component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/demandDevelop/ywStanding.vue'], resolve)
+        },
+		{
             meta: { name:  '移动商城产品上架', keepAlive: false },
             path: '/productOnSale',
             name: 'productOnSale',