12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319 |
- <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="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="状态">
- <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"
- >
- <div v-loading="loadinged">
- <el-form
- :model="infolist"
- ref="infolist"
- :rules="rules"
- style="height: calc(100vh - 180px)"
- >
- <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.demandNo"
- 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>
- <myUpload
- @uploadBack="uploadBack"
- :fileInfo="fileInfo"
- :fileList="fileInfo.fileList"
- style="width: calc(100% - 80px)"
- >
- </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%"
- >
- <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="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="checkexa = true"
- >确 定
- </el-button>
- <el-button
- v-if="titname != '查看' && visionsts == '3'"
- type="primary"
- @click="checkexa = true"
- >确 定
- </el-button>
- <el-button
- v-if="titname != '查看' && visionsts == '4'"
- type="primary"
- @click="dialogCli(2)"
- >确 定
- </el-button>
- <el-button
- v-if="titname != '查看' && visionsts == '2'"
- type="primary"
- @click="checkexa = true"
- >通 过
- </el-button>
- <el-button
- v-if="titname != '查看' && visionsts == '2'"
- type="primary"
- @click="dialogCli(1)"
- >打 回
- </el-button>
- <el-button v-if="titname == '添加'" type="primary" @click="temp"
- >保 存</el-button
- >
- <el-button
- v-if="titname == '添加'"
- type="primary"
- @click="checkexa = true"
- >确 定</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="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="dialogCliadd" v-if="!visionchonly"
- >确 定</el-button
- >
- <el-button type="primary" @click="dialogCli(2)" v-if="visionchonly"
- >确 定</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() {
- const demandName = (rule, value, callback) => {
- if (!this.infolist.demandName) {
- callback(new Error("不能为空"));
- } else {
- callback();
- }
- };
- const terminal = (rule, value, callback) => {
- if (!this.terminal) {
- callback(new Error("不能为空"));
- } else {
- callback();
- }
- };
- return {
- rules: {
- demandName: [
- {
- required: true,
- trigger: "blur",
- validator: demandName,
- },
- ],
- terminal: [
- {
- required: true,
- trigger: "change",
- validator: terminal,
- },
- ],
- },
- 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,
- 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: [],
- checkexa: false,
- treeList: [],
- treeListonly: {},
- defaultList: [],
- closeList: false,
- depttype: 0,
- fileInfoin: {
- type: "btn",
- typename: "导入",
- btntype: "primary",
- limit: 1,
- url: "/market/cChannelDemand/demandCarryImport",
- fileList: [],
- },
- tempSave: false,
- };
- },
- watch: {
- tempSave(value) {
- if (value) {
- // 监听编辑状态,每20秒请求一次,注意函数不加()
- this.timer = window.setInterval(this.temp, 20000);
- } else {
- // 停止监听
- clearInterval(this.timer);
- }
- },
- },
- methods: {
- 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.fileInfo.fileList = [];
- this.dialogStatus = false;
- this.checkexa = 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.$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;
- this.titname = "添加";
- this.visionchonly = false;
- 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);
- 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.getList({}, 1);
- this.getUser();
- this.getTermianl();
- this.getsaleChnl();
- },
- 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% - 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;
- margin-bottom: 5px;
- }
- }
- .treeUserb {
- width: calc(100% - 100px);
- border: 1px solid #ddd;
- background: #f4f4f4;
- border-radius: 3px;
- height: auto;
- overflow: hidden;
- p {
- display: inline-block;
- padding: 0 20px;
- margin-bottom: 5px;
- }
- }
- }
- .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>
|