1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756 |
- <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"
- >台账</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="busiSubject" label="业务名称">
- </el-table-column>
- <el-table-column prop="createName" label="申请姓名">
- </el-table-column>
- <el-table-column prop="createTimeStr" label="申请时间">
- </el-table-column>
- <el-table-column prop="stsDesc" label="状态">
- <template slot-scope="scope">
- {{
- scope.row.taskName == "信息补填" && scope.row.stsDesc == "待办"
- ? "未办结"
- : scope.row.stsDesc
- }}
- </template>
- </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" @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"
- :fullscreen="true"
- :key="number"
- >
- <div v-loading="loadinged" class="simple-dialog">
- <el-form :model="infolist" ref="infolist" :rules="rules">
- <div class="info-line">
- <el-form-item prop="demandName">
- <span>需求名称</span>
- <el-input
- v-model="infolist.demandName"
- placeholder="需求名称"
- :disabled="disableStatus"
- >
- </el-input>
- </el-form-item>
- <el-form-item>
- <span>需求编号</span>
- <el-input v-model="infolist.woNo" placeholder="需求编号" disabled>
- </el-input>
- </el-form-item>
- <!-- <el-form-item prop="terminal">
- <span>申请流程</span>
- <el-select clearable v-model="terminal" placeholder="申请流程" :disabled="disableStatus">
- <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>
- <span>紧急程度</span>
- <el-select
- clearable
- v-model="infolist.urgDegree"
- placeholder="紧急程度"
- :disabled="disableStatus"
- >
- <el-option
- v-for="items in urgDegreeopt"
- :key="items.id"
- :label="items.name"
- :value="items.name"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <span>业务主题</span>
- <el-input
- v-model="infolist.busiSubject"
- placeholder="业务主题"
- :disabled="disableStatus"
- >
- </el-input>
- </el-form-item>
- <el-form-item>
- <span>需求类别</span>
- <el-select
- clearable
- v-model="infolist.demandTypeCode"
- placeholder="需求类别"
- :disabled="disableStatus"
- >
- <el-option
- v-for="items in demandTypeopt"
- :key="items.dataCode"
- :label="items.dataName"
- :value="items.dataCode"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <span>承载渠道</span>
- <!-- //multiple -->
- <el-select
- clearable
- multiple
- v-model="infolist.carryChannelCode"
- placeholder="承载渠道"
- :disabled="disableStatus"
- >
- <el-option
- v-for="items in carryChannelopt"
- :key="items.dataCode"
- :label="items.dataName"
- :value="items.dataCode"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <span>加载周期</span>
- <el-date-picker
- :disabled="disableStatus"
- v-model="busiTime"
- type="daterange"
- placeholder="加载周期"
- style="display: inline-flex; width: calc(100% - 120px)"
- >
- </el-date-picker>
- </el-form-item>
- </div>
- <el-form-item class="info-line online">
- <span>需求背景</span>
- <el-input
- v-model="infolist.demandBackground"
- placeholder="需求背景"
- type="textarea"
- :autosize="{ minRows: 3, maxRows: 10 }"
- :disabled="disableStatus"
- >
- </el-input>
- </el-form-item>
- <el-form-item class="info-line online">
- <span>需求描述</span>
- <el-input
- v-model="infolist.demandDesc"
- placeholder="需求描述"
- type="textarea"
- :autosize="{ minRows: 3, maxRows: 10 }"
- :disabled="disableStatus"
- >
- </el-input>
- </el-form-item>
- <!-- 附件展示 -->
- <div
- style="padding: 0 20px 0 120px; margin-bottom: 20px"
- v-if="disableStatus"
- >
- <uploadDown
- :datalist="datalist"
- :dialogStatus="uploadstatus"
- ></uploadDown>
- </div>
- <!-- 附件上传 -->
- <div v-if="!disableStatus" class="info-line online">
- <span style="width: 80px">附件</span>
- <el-upload
- class="info-upload"
- :limit="3"
- action=""
- :on-preview="handlePreview"
- :on-remove="handleRemove"
- :http-request="handleSuccess"
- :file-list="file"
- drag
- multiple
- >
- <div class="upload">
- <i class="el-icon-upload"></i>
- <p class="el-upload__text">
- 将文件拖到此处,或<em>点击上传</em>
- </p>
- </div>
- </el-upload>
- </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%"
- >
- <el-table-column prop="infoName" label="需求承接支撑方">
- <template slot-scope="scope">
- <el-input
- v-model="scope.row.factoryName"
- :disabled="titname != '审批'"
- ></el-input>
- </template>
- </el-table-column>
- <el-table-column prop="infoName" label="涉及发生工作量">
- <template slot-scope="scope">
- <el-input
- v-model="scope.row.workLoad"
- :disabled="titname != '审批'"
- ></el-input>
- </template>
- </el-table-column>
- <el-table-column
- label="操作"
- width="120px"
- align="center"
- v-if="titname == '审批'"
- >
- <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>
- <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"
- :data="rovaList"
- tooltip-effect="dark"
- size="small"
- border
- style="width: 100%"
- >
- <el-table-column prop="logNo" label="编号"> </el-table-column>
- <el-table-column prop="stepName" label="环节"> </el-table-column>
- <el-table-column prop="processName" label="处理人">
- </el-table-column>
- <el-table-column prop="processWorkNo" label="处理人工号">
- </el-table-column>
- <el-table-column prop="updateTimeStr" label="处理时间">
- </el-table-column>
- <el-table-column prop="remark" label="备注"> </el-table-column>
- </el-table>
- </div>
- </el-form>
- <div slot="footer" class="info-footer">
- <div v-if="titname === '添加' || step === '0'">
- <el-button type="primary" @click="handleApprove('送部门人员审核')"
- >送部门人员审核</el-button
- >
- <el-button type="primary" @click="handleApprove('送领导审核')"
- >送领导审核</el-button
- >
- <el-button @click="handleApprove('取消')">取消</el-button>
- </div>
- <div v-else>
- <el-button
- v-for="(item, index) in buttonList"
- :key="index"
- type="primary"
- @click="handleApprove(item)"
- >{{ item }}</el-button
- >
- </div>
- </div>
- </div>
- </el-dialog>
- <el-dialog
- title="选择审批领导"
- :visible.sync="checkLaeder"
- width="500px"
- :destroy-on-close="true"
- :modal-append-to-body="false"
- :close-on-click-modal="false"
- >
- <div>
- <el-form>
- <el-form-item
- label="审批领导"
- :rules="{
- required: true,
- message: '请选择审批领导',
- trigger: 'change',
- }"
- >
- <el-select v-model="leader">
- <el-option
- v-for="(item, index) in leaderList"
- :key="index"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select> </el-form-item
- ></el-form>
- </div>
- <div slot="footer">
- <el-button type="primary" size="small" @click="formSubmit(2)"
- >确 定</el-button
- >
- <el-button @click="checkLaeder = false" size="small">取 消</el-button>
- </div>
- </el-dialog>
- <el-dialog
- title="选择审批人"
- :visible.sync="checkexa"
- width="50%"
- :destroy-on-close="true"
- :modal-append-to-body="false"
- :close-on-click-modal="false"
- >
- <div>
- <el-form :model="infolist" ref="infolist" :rules="rules">
- <el-form-item prop="visiblec" class="info-line online">
- <span>审批人员</span>
- <deptTreeOnly
- class="tree"
- @treeCheck="treeCheckonly"
- :defaultList="defaultList"
- :type="depttype"
- :closeList="closeList"
- :reset-list="treeList"
- ></deptTreeOnly>
- <div class="tree treeUser">
- <p v-for="(item, index) in treeList" :key="index">
- {{ item.label }}
- <i
- v-if="item.label"
- @click="deletes(item)"
- class="el-icon-error"
- ></i>
- </p>
- </div>
- </el-form-item>
- </el-form>
- <div slot="footer" style="text-align: right; padding-bottom: 20px">
- <el-button type="primary" @click="formSubmit(1)">确 定</el-button>
- <el-button @click="checkexa = false">取 消</el-button>
- </div>
- </div>
- </el-dialog>
- <myMessage
- :messTit="messTit"
- @closeMessage="closeMessage"
- :centerDialogVisible="centerDialogVisible"
- v-if="centerDialogVisible"
- ></myMessage>
- </fullscreen>
- </template>
- <script>
- import myMessage from "../../../components/myMessage.vue";
- import toolList from "../../../components/toolList";
- import myUpload from "../../../components/upload";
- import uploadDown from "../../../components/uploadDown.vue";
- import deptTreeOnly from "../performance/components/deptTreeOnly.vue";
- export default {
- components: {
- // mySearch,
- myMessage,
- toolList,
- myUpload,
- uploadDown,
- deptTreeOnly,
- },
- data() {
- return {
- rules: {
- demandName: [
- {
- required: true,
- trigger: "blur",
- message: "不能为空",
- },
- ],
- },
- // 操作名称
- operateName: "",
- woNo: "",
- // 当前进行到的步骤计数
- step: "",
- tooltit: "线上渠道业务需求",
- fullscreen: false,
- total: 0,
- // pageSize: 1,
- tableData: [],
- disableStatus: true,
- // 查看 审批 添加 弹出层 状态
- page: 1,
- pageSize: 10,
- file: [], // 附件数组
- titname: "",
- dialogStatus: false,
- number: 0,
- // 按钮标识
- type: "",
- // 联系人
- checkLaeder: false,
- checkexa: false,
- // 信息回显
- infolist: {},
- // 用户信息
- userInfo: {},
- buttonList: [
- "送部门人员审核",
- "送领导审核",
- "送申请人编号发送",
- "确认编号",
- "确认需求",
- "电商接口人阅办",
- "项目组送电商接口人阅办",
- "送其他人办理",
- "打回",
- "取消",
- ],
- 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,
- mydisable: 1,
- opname: "",
- opno: "",
- attList: [],
- options: [],
- terminal: "729289304205336576",
- // terminal: '722743473704595456',//722743473704595456省722748981018685440
- remark: "",
- visionsts: "1",
- visionchonly: false,
- ifopt: [
- {
- id: 1,
- name: "是",
- },
- {
- id: 0,
- name: "否",
- },
- ],
- infodatas: [{}, {}],
- busiTime: [],
- urgDegreeopt: [
- {
- id: 1,
- name: "正常",
- },
- {
- id: 2,
- name: "紧急",
- },
- {
- id: 3,
- name: "非常紧急",
- },
- ],
- demandTypeopt: [],
- carryChannelopt: [],
- treeList: [],
- treeListonly: {},
- defaultList: [],
- closeList: false,
- depttype: 0,
- fileInfoin: {
- type: "btn",
- typename: "导入",
- btntype: "primary",
- limit: 1,
- url: "/market/cChannelDemand/demandCarryImport",
- fileList: [],
- },
- tempSave: false,
- };
- },
- watch: {
- "datalist.attList"() {
- this.number++;
- },
- // tempSave(value) {
- // if (value) {
- // // 监听编辑状态,每20秒请求一次,注意函数不加()
- // this.timer = window.setInterval(this.temp, 20000);
- // } else {
- // // 停止监听
- // clearInterval(this.timer);
- // }
- // },
- },
- methods: {
- // 新的处理方法
- handlePreview(file) {
- console.log(file, "Preview");
- },
- handleRemove(file) {
- this.file = this.file.filter((el) => el.uid !== file.uid);
- },
- handleSuccess({ file }) {
- this.file.push(file);
- },
- handleApprove(type) {
- if (type === "取消") {
- this.dialogStatus = false;
- this.disableStatus = false;
- this.number++;
- this.infolist = {};
- return;
- }
- this.$refs.infolist.validate((val) => {
- if (val) {
- switch (type) {
- case "送部门人员审核":
- this.checkexa = true;
- this.type = "0";
- console.log("送部门人员审核");
- break;
- case "送领导审核":
- this.type = "1";
- // this.formSubmit()
- this.checkLaeder = true;
- console.log("送领导审核");
- break;
- case "送申请人编号发送":
- this.handleSendNo();
- break;
- case "确认编号":
- this.handleComfirmNo();
- break;
- case "打回":
- this.handleBackRecord();
- break;
- case "确认需求":
- this.checkexa = true;
- this.type = "0";
- this.operateName = "确认需求";
- break;
- case "电商接口人阅办":
- this.checkexa = true;
- this.type = "0";
- this.operateName = "电商接口人阅办";
- break;
- case "项目组送电商接口人阅办":
- this.checkexa = true;
- this.type = "0";
- this.operateName = "项目组送电商接口人阅办";
- break;
- case "送其他人办理":
- this.operateName = "送其他人办理";
- this.handleDeliverReadOfficeOrOtherDo(2)
- break;
- }
- }
- });
- },
- // 项目组送电商接口人阅办
- handleDeliverReadOfficeOrOtherDo(type){
- console.log(this.operateName,type);
- },
- // 电商接口人阅办---管理项目组会签
- handleCountersigned(){
- let receiveId = [];
- let receiveName = [];
- // console.log(this.treeList);
- this.treeList.forEach((item) => {
- receiveId.push(item.id);
- receiveName.push(item.loginNoStr);
- });
- let reqdata = {
- operateName: this.operateName,
- receiveId: receiveId.join(","),
- receiveName: receiveName.join(","),
- reviewOpinion: this.operateName + "," + this.remark,
- woNo: this.woNo + "",
- };
- console.log(reqdata);
- this.$http({
- url: "/market/mkOnlineChannel/countersigned",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: reqdata,
- }).then(({ data: { desc } }) => {
- console.log(desc);
- if (desc === "操作成功") {
- this.$message.success("操作成功");
- this.checkexa = false
- this.dialogStatus = false;
- this.handleInit();
- } else {
- this.$message.error("操作失败");
- }
- });
- },
- // 确认需求
- handleNeedyComfirm() {
- let receiveId = [];
- let receiveName = [];
- // console.log(this.treeList);
- this.treeList.forEach((item) => {
- receiveId.push(item.id);
- receiveName.push(item.loginNoStr);
- });
- let reqdata = {
- operateName: this.operateName,
- receiveId: receiveId.join(","),
- receiveName: receiveName.join(","),
- reviewOpinion: this.operateName + "," + this.remark,
- woNo: this.woNo + "",
- };
- console.log(reqdata);
- this.$http({
- url: "/market/mkOnlineChannel/confirmDemand",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: reqdata,
- }).then(({ data: { desc } }) => {
- console.log(desc);
- if (desc === "操作成功") {
- this.$message.success("操作成功");
- this.checkexa = false
- this.dialogStatus = false;
- this.handleInit();
- } else {
- this.$message.error("操作失败");
- }
- });
- },
- // 打回方法
- handleBackRecord() {
- this.$http({
- url: "/market/mkOnlineChannel/backRecord",
- method: "get",
- headers: {
- "Content-Type": "application/json",
- },
- params: {
- woNo: this.woNo,
- remark: this.remark,
- },
- }).then(({ data: { desc } }) => {
- console.log(desc);
- if (desc === "操作成功") {
- this.$message.success("操作成功");
- this.dialogStatus = false;
- this.handleInit();
- } else {
- this.$message.error("操作失败");
- }
- });
- },
- // 表单提交
- formSubmit(type) {
- if (type === 1) {
- if (!this.treeList.length) {
- this.$message.error("请选择审核人员");
- return;
- }
- } else {
- if (!this.leader) {
- this.$message.error("请选择审核领导");
- return;
- }
- }
- let request = 0;
- let formData = new FormData();
- let origin_params = {};
- if (this.infolist.woNo) {
- origin_params = {
- // 需求编号
- woNo: this.infolist.woNo,
- createId: this.infolist.createId,
- createName: this.infolist.createName,
- };
- }
- let params = {
- ...origin_params,
- // 需求名称
- demandName: this.infolist.demandName,
- // 紧急程度
- urgDegree: this.infolist.urgDegree,
- // 业务主题
- busiSubject: this.infolist.busiSubject,
- // 需求类别
- demandTypeCode: this.infolist.busiSubject,
- //承载渠道
- carryChannelCode: this.infolist.carryChannelCode.join(","),
- // 加载周期 起止
- busiStartTime: this.busiTime[0]
- ? this.$formatDate(this.busiTime[0], "YYYY-MM-DD HH:mm:ss")
- : "",
- busiEndTime: this.busiTime[1]
- ? this.$formatDate(this.busiTime[1], "YYYY-MM-DD HH:mm:ss")
- : "",
- // 需求背景
- demandBackground: this.infolist.demandBackground,
- // 需求描述
- demandDesc: this.infolist.demandDesc,
- // 审批说明
- remark: this.remark,
- // 审核人员
- loginNameList: this.treeList.length
- ? this.treeList.map((el) => {
- return el.label;
- })
- : [this.leader],
- loginNoList: this.treeList.length
- ? this.treeList.map((el) => {
- return el.loginNoStr;
- })
- : [this.leader],
- type: this.type,
- // fileList: this.file,
- };
- // 处理其他参数
- for (let key in params) {
- formData.append(key, params[key]);
- }
- // 这是处理文件的参数
- if (this.file.length) {
- this.file.forEach((el, index) => {
- if (el.constructor.name === "File") {
- formData.append(`file${index + 1}`, el);
- }
- });
- }
- request = 1;
- if (this.operateName === "确认需求") {
- this.handleNeedyComfirm();
- return;
- }
- if(this.operateName === '电商接口人阅办'){
- this.handleCountersigned()
- return;
- }
- if (request) {
- this.$http({
- url: "/market/mkOnlineChannel/saveOrUpdate",
- method: "post",
- headers: {
- "Content-Type": "multipart/form-data",
- },
- data: formData,
- }).then(({ data }) => {
- if (data && data.desc === "操作成功") {
- this.$message({
- type: "success",
- message: data.desc,
- });
- this.dialogStatus = false;
- this.disableStatus = false;
- this.checkexa = false;
- this.checkLaeder = false;
- this.leader = "";
- this.infolist = {};
- this.handleInit();
- }
- });
- }
- },
- // 送申请人编号发送
- handleSendNo() {
- this.$http({
- url: "/market/mkOnlineChannel/createDemandNo",
- method: "get",
- headers: {
- "Content-Type": "application/json",
- },
- params: {
- woNo: this.woNo,
- },
- }).then(({ data: { desc } }) => {
- console.log(desc);
- if (desc === "操作成功") {
- this.$message.success("操作成功");
- this.dialogStatus = false;
- this.handleInit();
- } else {
- this.$message.error("操作失败");
- }
- });
- },
- // 确认编号
- handleComfirmNo() {
- this.$http({
- url: "/market/mkOnlineChannel/confirmNumber",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {woNo:this.woNo + ''},
- }).then(({ data: { desc } }) => {
- console.log(desc);
- if (desc === "操作成功") {
- this.$message.success("操作成功");
- this.dialogStatus = false;
- this.handleInit();
- } else {
- this.$message.error("操作失败");
- }
- });
- },
- // 初始化列表接口
- handleInit() {
- this.$http({
- url: "/market/mkOnlineChannel/queryPage",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- page: this.page,
- pageSize: this.pageSize,
- },
- }).then(
- ({
- data: {
- body: { data },
- },
- }) => {
- this.tableData = data;
- }
- );
- },
- // 查看详情接口封装
- queryDetails(id) {
- this.$http({
- url: "/market/mkOnlineChannel/getMkOnlineChannelById",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: id,
- }).then(
- ({
- data: {
- body: { mkOnlineChannel },
- },
- }) => {
- this.infolist = {
- ...mkOnlineChannel,
- carryChannelCode: mkOnlineChannel.carryChannelCode.split(","),
- };
- this.busiTime = [
- mkOnlineChannel.busiStartTime,
- mkOnlineChannel.busiEndTime,
- ];
- // this.rovaList = mkOnlineChannel.logList;
- this.datalist = {
- ...this.datalist,
- attList: mkOnlineChannel.attList,
- };
- //表单编号
- this.woNo = mkOnlineChannel.woNo;
- // 步骤
- this.step = mkOnlineChannel.step;
- // 数组回显
- this.infodatas = mkOnlineChannel.logList;
- this.dialogStatus = true;
- if (this.titname === "添加") {
- // 审批说明
- this.visionsts = "";
- this.disableStatus = false;
- } else {
- // this.disableStatus = true;
- this.disableStatus = true;
- if (this.titname === "查看") {
- this.visionsts = "";
- } else {
- this.visionsts = "2";
- }
- }
- }
- );
- },
- // 老方法
- temp() {
- if (JSON.stringify(this.infolist) == "{}") {
- return;
- }
- let params = {};
- params.infolist = this.infolist;
- params.fileList = [];
- params.attList = [];
- this.attList.forEach((item) => {
- let file = {
- id: item.fileCode,
- fileCode: item.fileCode,
- fileName: item.fileName,
- name: item.fileName,
- };
- params.fileList.push(file);
- params.attList.push(file);
- });
- this.$http({
- url: "/market/bpmTemp/temp",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- bpmType: "1",
- content: JSON.stringify(params),
- },
- }).then((res) => {
- //console.log(res)
- });
- },
- deletes(v) {
- // this.treeListonly = {};
- this.treeList = this.treeList.filter(
- (el) => el.loginNoStr !== v.loginNoStr
- );
- this.closeList = !this.closeList;
- },
- treeCheckonly(v) {
- this.treeList = v;
- // this.treeListonly = v;
- },
- choline(v, n) {
- if (v == 1) {
- this.infodatas.push({});
- } else {
- this.infodatas.splice(n.$index, 1);
- }
- },
- closedia() {
- this.infolist = {};
- this.attList = [];
- this.file = [];
- delete this.datalist.attList;
- this.fileInfo.fileList = [];
- this.dialogStatus = false;
- this.checkexa = false;
- this.busiTime = [];
- },
- //获取列表
- 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(type, data) {
- // let infolist = Object.assign({}, n);
- this.vision = "";
- this.visionsts = "";
- this.infodatas = [{}, {}];
- if (type === 1) {
- this.titname = "查看";
- this.visionsts = "2";
- this.queryDetails(data.woNo);
- } else if (type === 2) {
- this.titname = "审批";
- this.visionsts = "2";
- this.queryDetails(data.woNo);
- } else if (type === 3) {
- this.titname = "添加";
- this.dialogStatus = true;
- this.visionchonly = false;
- this.disableStatus = false;
- // this.$http({
- // url: "/market/bpmTemp/query",
- // method: "post",
- // headers: { "Content-Type": "application/json" },
- // data: { bpmType: "1" },
- // }).then((res) => {
- // if (res.data) {
- // let content = JSON.parse(res.data.content);
- // this.infolist = content.infolist;
- // this.attList = content.attList;
- // this.fileInfo.fileList = content.fileList;
- // }
- // // this.tempSave = true;
- // });
- // 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);
- // res.data.params.fillList
- // ? (this.infodatas = JSON.parse(res.data.params.fillList))
- // : "";
- // 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;
- // this.busiTime = [];
- // this.busiTime[0] = this.infolist.busiStartTime;
- // this.busiTime[1] = this.infolist.busiEndTime;
- // this.visionchonly = false;
- // if (
- // res.data.taskList[res.data.taskList.length - 1].taskName == "流程发起"
- // ) {
- // this.vision = "流程发起";
- // if (this.titname == "审批") {
- // this.disableStatus = false;
- // }
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "科室主任初审"
- // ) {
- // this.vision = "科室主任初审";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "部门副主任复审"
- // ) {
- // this.vision = "部门副主任复审";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } 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";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "需求预评估"
- // ) {
- // this.vision = "需求预评估";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "需求预评估初审"
- // ) {
- // this.vision = "需求预评估初审";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "需求预评估复审"
- // ) {
- // this.vision = "需求预评估复审";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName ==
- // "渠道经理会签"
- // ) {
- // this.vision = "渠道经理会签";
- // this.visionsts = "2";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName == "需求确认"
- // ) {
- // this.vision = "需求确认";
- // this.visionsts = "3";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName == "上线管理"
- // ) {
- // this.vision = "上线管理";
- // this.visionsts = "3";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName == "上线验证"
- // ) {
- // this.vision = "上线验证";
- // this.visionsts = "3";
- // this.visionchonly = true;
- // } else if (
- // res.data.taskList[res.data.taskList.length - 1].taskName == "信息补填"
- // ) {
- // this.vision = "信息补填";
- // this.visionsts = "4";
- // }
- // 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) {
- this.dialogStatus = false;
- if (v === 3) {
- this.infolist = {};
- this.attList = [];
- this.fileInfo.fileList = [];
- this.checkexa = false;
- this.tempSave = false;
- return;
- }
- let _this = this;
- this.infolist.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD");
- 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,
- };
- 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.visionchonly) {
- param.params.assigneeNo = this.treeListonly.leaderAuditNo;
- param.params.assigneeName = this.treeListonly.leaderAuditName;
- }
- // if(this.vision == '科室主任初审'||this.vision == '部门副主任复审'){
- // this.$http({
- // url: "/sysmgr/csysuserinfo/queryUserListByLoginNoAndDuty",
- // method: "post",
- // headers: {
- // "Content-Type": "application/json",
- // "page": '{"pageNo":"' + 1 + '","pageSize":"100"}'
- // },
- // data: {"duty":"7,12"},
- // }).then((res) => {
- // if(res.data.length == 0){
- // this.$message({
- // message: '暂无领导审批,发起失败!',
- // type: 'error'
- // });
- // return
- // }else{
- // param.params.assigneeNo=res.data[0].loginNoStr;
- // param.params.assigneeName=res.data[0].loginNameStr;
- // _this.submitInfo("/bpm/api/submitTask", param);
- // return
- // }
- // });
- // }else if(this.vision == '渠道经理会签'||this.vision == '上线管理'){
- // param.params.assigneeNo= this.opno;
- // param.params.assigneeName= this.opname;
- // this.submitInfo("/bpm/api/submitTask", param);
- // }
- if (this.vision == "信息补填") {
- param.params.fillList = JSON.stringify(this.infodatas);
- this.submitInfo("/bpm/api/submitTask", param);
- } else {
- 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.$http({
- url: "/market/bpmTemp/del",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- bpmType: "1",
- },
- }).then((res) => {
- //console.log(res)
- });
- }
- this.submitInfo("/bpm/api/submitTask", param);
- }
- }
- this.checkexa = false;
- },
- //添加
- dialogCliadd(v) {
- let _this = this;
- let info = {};
- info.params = {};
- info.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD");
- info.opNo = this.userInfo.loginNo;
- info.opName = this.userInfo.loginName;
- info.woTitle = this.infolist.demandName;
- info.params.terminalRes = this.infolist;
- info.params.terminalRes.busiStartTime = this.busiTime[0]
- ? _this.$formatDate(this.busiTime[0], "YYYY-MM-DD")
- : "";
- info.params.terminalRes.busiEndTime = this.busiTime[1]
- ? _this.$formatDate(this.busiTime[1], "YYYY-MM-DD")
- : "";
- info.procId = this.terminal;
- info.params.assigneeNo = this.treeListonly.leaderAuditNo;
- info.params.assigneeName = this.treeListonly.leaderAuditName;
- 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,
- });
- }
- 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.visionchonly = false;
- this.submitInfo("/bpm/api/startProc", info);
- },
- submitInfo(u, v) {
- let _this = this;
- this.$refs.infolist.validate((valid) => {
- 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() {
- this.$router.push({
- path: "/ywStanding",
- });
- this.setabList("线上业务需求台账", "/ywStanding");
- },
- 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
- .$http({
- url: "/bpm/api/deleteBpmPrePlugin",
- 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) {
- 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) {
- this.getList(this.params, this.pageSize);
- }
- if (v === 2) {
- this.fullscreen = !this.fullscreen;
- }
- },
- getUser() {
- this.userInfo = JSON.parse(window.sessionStorage.userInfo);
- },
- // 字典
- // 需求类别 demandType
- // 承载渠道 demandChnl
- getsaleChnl() {
- this.$http({
- url: "/market/cfgDataDict/queryList",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- dictCode: "demandType",
- },
- }).then((res) => {
- this.demandTypeopt = res.data;
- });
- this.$http({
- url: "/market/cfgDataDict/queryList",
- method: "post",
- headers: {
- "Content-Type": "application/json",
- },
- data: {
- dictCode: "demandChnl",
- },
- }).then((res) => {
- this.carryChannelopt = res.data;
- });
- },
- },
- mounted() {
- // 调用初始化接口
- this.handleInit();
- // this.getList({}, 1);
- this.getUser();
- this.getTermianl();
- this.getsaleChnl();
- },
- created() {},
- };
- </script>
- <style scoped lang="scss">
- .onetab {
- margin-bottom: 20px;
- padding: 0 20px;
- }
- .simple-dialog {
- position: relative;
- min-height: 90vh;
- }
- .info {
- &-footer {
- display: flex;
- margin-top: 50px;
- justify-content: flex-end;
- margin-bottom: 50px;
- }
- &-upload {
- width: 500px !important;
- }
- }
- .titbox {
- div {
- float: right;
- i {
- font-size: 22px;
- margin-left: 20px;
- cursor: pointer;
- }
- }
- }
- .upload {
- position: relative;
- left: calc(50% - 229px / 2);
- vertical-align: middle;
- display: flex !important;
- flex-direction: column;
- }
- .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% - 100px);
- }
- span {
- vertical-align: top;
- }
- .el-textarea {
- width: calc(100% - 120px);
- }
- .tree {
- width: calc(50% - 60px);
- display: inline-block;
- margin-right: 20px;
- height: 300px;
- overflow-y: scroll;
- .el-icon-error {
- float: right;
- font-size: 20px;
- margin-top: 9px;
- cursor: pointer;
- }
- }
- .treeUser {
- margin: 0;
- border: 1px solid #ddd;
- p {
- background: #f4f4f4;
- padding: 0 20px;
- border-bottom: 1px solid #fff;
- }
- }
- .treeUserb {
- width: calc(100% - 100px);
- border: 1px solid #ddd;
- background: #f4f4f4;
- border-radius: 3px;
- height: auto;
- overflow: hidden;
- p {
- display: inline-block;
- padding: 0 20px;
- // margin-bottom: 5px;
- }
- }
- }
- .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, 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>
|