| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752 |
- <template>
- <div class="index_box">
- <el-drawer
- title=""
- :visible.sync="drawer"
- v-if="drawer"
- :before-close="handleClose"
- :custom-class="isFullscreen ? 'not-fullscreen' : 'is-fullscreen'"
- :with-header="false"
- append-to-body
- >
- <div>
- <div>
- <div class="seek-list" style="background-color: #157a2c">
- <div
- style="
- width: 100%;
- color: #fff;
- display: flex;
- justify-content: space-between;
- "
- >
- <div>
- <b style="margin-right: 50px; font-size: 14px"
- >当前工序:{{ title }}</b
- >
- <b style="font-size: 14px">下道工序:{{ title1 }}</b>
- </div>
- <div>
- <b style="font-size: 14px; margin-right: 10px; color: orange"
- >工艺路线:{{ workOrderInfo.produceRoutingName }}
- </b>
- <b style="font-weight: blod; font-size: 14px">
- 操作员:{{ info.name }}
- </b>
- </div>
- <div class="rx-ec">
- <el-button
- icon="el-icon-full-screen"
- type="text"
- style="color: #fff; font-size: 14px"
- @click="handleFull"
- >{{ isFullscreen ? '全屏' : '缩小' }}</el-button
- >
- <el-button
- icon="el-icon-circle-close"
- type="text"
- style="color: #fff; font-size: 14px"
- @click="handleClose"
- >关闭</el-button
- >
- </div>
- </div>
- </div>
- <div class="drawer_content">
- <el-steps
- class="process-route-steps"
- :active="activeIndex"
- space="20px"
- align-center
- >
- <el-step
- v-for="(item, index) in routeList"
- :key="index"
- @click.native="handIdx(index, item)"
- :description="desIndex == index ? '此处' : ''"
- :class="desIndex == index ? 'active' : ''"
- :status="errorIndex == index ? 'error' : ''"
- >
- <template slot="title">
- <div class="step-title">
- <div>{{ item.taskTypeName }}</div>
- <div v-if="showTaskTeamName(item)" class="step-team-name">
- {{ getTaskTeamName(item) }}
- </div>
- </div>
- </template>
- </el-step>
- </el-steps>
- </div>
- <el-tabs type="border-card" :key="drawerKey">
- <el-tab-pane label="基本信息">
- <ele-split-layout
- space="0px"
- width="26%"
- :resizable="true"
- :min-size="200"
- :max-size="-200"
- :left-style="{
- overflow: 'hidden',
- width: '100%'
- }"
- :right-style="{ overflow: 'hidden' }"
- :responsive="false"
- style="height: calc(100vh - 295px)"
- >
- <!-- 详细信息 -->
- <div class="left_main">
- <div class="top">
- <Info :workOrderInfo="workOrderInfo"></Info>
- </div>
- </div>
- <!-- //报工信息 -->
- <template v-slot:content>
- <div class="right_main">
- <!-- 领料 -->
- <!-- <div v-if="operationType == 'pick'"> -->
- <div v-if="operationType == 'pick'">
- <pickDetails
- ref="pickListRef"
- :workTaskId="workTaskId"
- :taskId="taskObj.id"
- @pickAdd="pickAdd"
- ></pickDetails>
- </div>
- <div v-if="operationType == 'feed'">
- <!-- 投料 -->
- <feeding
- v-if="isFinalCheckProduction"
- :workListIds="workListIds"
- :feedNeedEquipment="feedNeedEquipment"
- @feedSuccess="feedSuccess"
- ></feeding>
- </div>
- <div v-if="operationType == 'job'">
- <!-- // 报工列表 入库 -->
- <warehousing
- v-if="taskObj.id == -1"
- :workListIds="workListIds"
- ref="wareRef"
- @warehouseSuccess="warehouseSuccess"
- :workPlanType="workPlanType"
- ></warehousing>
- <jobBooking
- v-else-if="isFinalCheckProduction"
- :workListIds="workListIds"
- ref="jobRef"
- :reportNeedFeed="reportNeedFeed"
- @jobSuccess="jobSuccess"
- @reloadData="reloadData"
- :workPlanType="workPlanType"
- ></jobBooking>
- </div>
- <div v-if="operationType == 'workOrder'">
- <workOrderHandover
- :workListIds="workListIds"
- :workData="workOrderInfo"
- ref="workOrderHandoverRef"
- @cancel="closeWorkOrderHandover"
- @success="workOrderHandoverSuccess"
- ></workOrderHandover>
- </div>
- <!-- 工步 -->
- <div v-if="operationType == 'workStep'"> </div>
- <!-- 质检工序 -->
- <div v-if="operationType == 'inspection'">
- <inspection
- :workListIds="workListIds"
- ref="inspectionRef"
- ></inspection>
- </div>
- <!-- 委外 -->
- <div
- v-if="operationType == 'Outsourcing' && isType == '3'"
- class="right_main_box"
- >
- <outsourcingDetails
- ref="outsourcingListRef"
- @outsourcingAdd="outsourcingAdd"
- v-if="!isStep && !isOutsource && !isPleaseEntrust"
- :chooseType="chooseType"
- ></outsourcingDetails>
- <outsourcing
- :outsourceFormVal="outsourceForm"
- :taskObj="taskObj"
- :workListIds="workListIds[0]"
- :workData="workInfoList"
- @changePlugIn="changePlugIn"
- @changeCancel="changeCancel"
- :chooseType="chooseType"
- v-if="isStep"
- ></outsourcing>
- <outsourceList
- :workData="workInfoList"
- :taskObj="taskObj"
- :outsourceFormVal="outsourceForm"
- :chooseType="chooseType"
- @closeForm="closeForm"
- @outScucc="outScucc"
- v-if="isOutsource"
- ></outsourceList>
- <pleaseEntrust
- :outsourceFormVal="outObj"
- @closeForm="closeForm"
- @outScucc="outScucc"
- v-if="isPleaseEntrust"
- ></pleaseEntrust>
- </div>
- </div>
- </template>
- </ele-split-layout>
- <footBtn
- @footBtn="footBtn"
- :type="type"
- :singleReportInspection="singleReportInspection"
- :qualityInspectionDisabled="qualityInspectionDisabled"
- :qualityInspectionDisabledMsg="firstArticlePickFeedMsg"
- :activeName="activeName"
- style="background: rgba(223, 250, 222, 0.6); padding: 10px"
- ></footBtn>
- </el-tab-pane>
- <el-tab-pane label="投料详情">
- <feedDetails
- :routeObj="routeObj"
- :curTaskObj="curTaskObj"
- ></feedDetails
- ></el-tab-pane>
- <el-tab-pane label="报工详情">
- <jobDetails
- :routeObj="routeObj"
- :curTaskObj="curTaskObj"
- :newId="newId"
- ></jobDetails>
- </el-tab-pane>
- <el-tab-pane label="生产明细">
- <productionDetails
- :workOrderInfo="workOrderInfo"
- ></productionDetails>
- </el-tab-pane>
- <!-- <el-tab-pane label="退料详情"> </el-tab-pane> -->
- </el-tabs>
- </div>
- </div>
- <!--领料弹框 -->
- <picking
- v-if="pickingShow"
- @close="pickingClose"
- :workListIds="workListIds"
- ></picking>
- <!-- 工艺文件 -->
- <wokePopup ref="wokePopupRef"></wokePopup>
- <!-- 检验报工 -->
- <workPlan ref="jobRefs" @closeWorkPlan="closeWorkPlan"> </workPlan>
- <!-- <workes ref="jobRefs"> </workes> -->
- <!-- :workListIds="workListIds" :taskId="taskObj.id" -->
- <!-- 产前准备 、 过程控制 、产后检测 -->
- <prenatalExamination
- ref="prenatalExaminationRef"
- @close="closePrenatalExamination"
- />
- <!-- 工步 -->
- <workStep ref="workStepRef" />
- <!-- 任务 -->
- <TaskDialog ref="taskDialogRef" />
- <!-- 异常 -->
- <createError ref="createErrorRef" />
- <addPlease ref="addPleaseRef" @refresh="refreshPlease"></addPlease>
- <qualityInspection ref="qualityInspectionRef"></qualityInspection>
- <encodingDialog ref="encodingDialogRef" />
- </el-drawer>
- </div>
- </template>
- <script>
- import Info from './info.vue';
- import TaskDialog from '@/views/produce/components/taskDialog/index.vue';
- import Search from '@/views/produce/components/search.vue';
- import footBtn from '@/views/produce/components/footBtn.vue';
- import prenatalExamination from '@/views/produce/components/prenatalExamination/index.vue';
- import produceOrder from '@/views/produce/components/new_produceOrder.vue';
- import productionResource from '@/views/produce/components/productionResource/index.vue';
- import outsourcing from '@/views/produce/components/outsourcing/index.vue';
- import picking from '@/views/produce/components/picking/index.vue';
- import wokePopup from '@/views/produce/components/picking/wokePopup.vue';
- import inspection from '@/views/produce/components/inspection/newIndex.vue';
- import pickDetails from '@/views/produce/components/picking/details.vue';
- import AssetTree from '@/components/AssetTree/joobIndex.vue';
- import feeding from '@/views/produce/components/feeding/index.vue';
- import outsourcingDetails from '@/views/produce/components/outsourcing/details.vue';
- import jobBooking from '@/views/produce/components/jobBooking/index.vue';
- import workPlan from '@/views/produce/components/workPlan/index.vue';
- import warehousing from '@/views/produce/components/warehousing/index.vue';
- import outsourceList from '@/views/produce/components/outsourcing/new_outsourceList.vue';
- import pleaseEntrust from '@/views/produce/components/outsourcing/pleaseEntrust.vue';
- import workStep from '@/views/produce/components/workStep/index.vue';
- import createError from '@/views/produce/components/createError.vue';
- import productionDetails from '../workOrderList/components/productionDetails.vue';
- import { parameterGetByCode } from '@/api/system/dictionary-data';
- import {
- getByTaskId,
- pcCheckOutsource,
- getTaskInstanceById,
- checkOutsourceMaterial,
- listTask,
- factoryworkstationPage,
- nextTask,
- checkPleaseEntrust,
- checkRepeatPick,
- getTaskReport
- } from '@/api/produce/index';
- import { getTaskInstanceList } from '@/api/produce/job';
- import { workorderInfo } from '@/api/produceOrder/index.js';
- import feedDetails from '@/views/produce/components/feeding/details.vue';
- import jobDetails from '@/views/produce/components/jobBooking/details.vue';
- import addPlease from '@/views/produce/components/outsourcing/addPlease.vue';
- import qualityInspection from '@/views/produce/components/qualityInspection/index.vue';
- import workOrderHandover from '@/views/produce/components/workOrderHandover/index.vue';
- import { checkProductionResult } from '@/api/producetaskrulerecord/index.js';
- import { getPlanDotLine } from '@/api/produceOrder/index.js';
- import { checkFeedStatus } from '@/api/produce/feeding.js';
- import encodingDialog from '../produce/components/encodingDialog/index.vue';
- export default {
- components: {
- Search,
- footBtn,
- wokePopup,
- produceOrder,
- productionResource,
- outsourcing,
- picking,
- pickDetails,
- outsourceList,
- feeding,
- AssetTree,
- jobBooking,
- inspection,
- warehousing,
- workStep,
- workPlan,
- TaskDialog,
- createError,
- Info,
- feedDetails,
- jobDetails,
- productionDetails,
- outsourcingDetails,
- pleaseEntrust,
- addPlease,
- qualityInspection,
- prenatalExamination,
- workOrderHandover,
- encodingDialog
- },
- data() {
- return {
- name: '',
- activeName: '0',
- taskName: '',
- keyWord: '', //搜索
- title: '',
- type: '',
- loading: false,
- isLoading: null,
- operationType: null,
- popupType: '', // 弹窗
- workListIds: [],
- factoryworkstationList: [],
- title1: '',
- arr: [],
- arrTow: [],
- produceTaskList: [],
- isType: '',
- isStep: false,
- outsourceForm: {},
- outObj: {},
- pickingShow: false,
- wokePopup: false,
- workOrderInfo: {},
- routeList: [],
- activeIndex: 0,
- desIndex: 0,
- errorIndex: 10000,
- drawer: false,
- workData: {},
- isFullscreen: false,
- isOutsource: false,
- chooseType: '1',
- routeObj: {
- id: null
- },
- BomObj: {},
- defaultProps: {
- children: 'children',
- label: 'newName'
- },
- defaultPropsTow: {
- children: 'children',
- label: 'name',
- value: 'code'
- },
- feedNeedEquipment: 0, //投料是否要添加生产设备1是0否
- reportNeedFeed: 0, //生产质检是否需要处置再报工1是0否
- singleReportInspection: null, //获取选中的工单是单个还是批量
- workTaskId: null, //选中的工单工序id
- workStepQueryParam: {
- taskId: null,
- workOrderId: null,
- bomCategoryId: null
- },
- isFinalCheckProduction: true,
- newId: '',
- curTaskObj: null,
- produceList: [],
- workPlanType: '',
- isPleaseEntrust: false,
- workInfoList: {},
- drawerKey: 0,
- planDotLineEnabled: false,
- firstArticlePickFeedReady: true,
- firstArticlePickFeedMsg: '',
- firstArticlePickFeedCheckKey: ''
- };
- },
- computed: {
- taskObj() {
- return this.$store.state.user.taskObj;
- },
- info() {
- return this.$store.state.user.info;
- },
- hasFirstArticleInspectionTarget() {
- return this.activeName === '0' && this.workListIds.length > 0;
- },
- qualityInspectionDisabled() {
- return (
- this.info?.clientEnvironmentId == 9 &&
- this.hasFirstArticleInspectionTarget &&
- !this.firstArticlePickFeedReady
- );
- },
- rightShow() {
- return (type) => {};
- }
- },
- created() {
- this.init();
- this.getTaskList();
- this.getFactoryworkstationPageList();
- this.getPlanDotLineConfig();
- this.operationType = null;
- this.workListIds = [];
- },
- methods: {
- tabClickValue() {
- this.name = '';
- this.seekInput();
- },
- async getPlanDotLineConfig() {
- try {
- const res = await parameterGetByCode({
- code: 'plan_dot_line'
- });
- this.planDotLineEnabled = !!res && res.value == '1';
- } catch (error) {
- this.planDotLineEnabled = false;
- console.error('getPlanDotLineConfig error', error);
- }
- },
- async syncPlanDotLineRouteList() {
- if (!this.planDotLineEnabled) {
- return;
- }
- const productionPlanId = this.workOrderInfo?.productionPlanId;
- if (!productionPlanId) {
- return;
- }
- if (!Array.isArray(this.routeList) || this.routeList.length === 0) {
- return;
- }
- try {
- const res = await getPlanDotLine({
- planId: productionPlanId
- });
- const detailList = Array.isArray(res?.detailList)
- ? res.detailList
- : [];
- if (!detailList.length) {
- return;
- }
- console.log(detailList, 'detailList');
- const detailMap = detailList.reduce((map, item) => {
- const taskId = item?.taskId;
- if (taskId !== undefined && taskId !== null && taskId !== '') {
- map.set(String(taskId), item);
- }
- return map;
- }, new Map());
- this.routeList = this.routeList.map((item) => {
- const taskId = item?.taskId;
- if (taskId === undefined || taskId === null || taskId === '') {
- return item;
- }
- const detail = detailMap.get(String(taskId));
- if (!detail) {
- return item;
- }
- return {
- ...item,
- executionTeamName: detail.executionTeamName ?? '',
- executionTeamId: detail.executionTeamId ?? ''
- };
- });
- console.log(this.routeList, 'thisnewewewewrouteList');
- } catch (error) {
- console.error('syncPlanDotLineRouteList error', error);
- }
- },
- getUserTeamIds() {
- const teamId = this.$store?.state?.user?.info?.teamId;
- if (Array.isArray(teamId)) {
- return teamId
- .map((item) => String(item).trim())
- .filter((item) => item);
- }
- if (typeof teamId !== 'string' || !teamId) {
- return [];
- }
- return teamId
- .split(',')
- .map((item) => item.trim())
- .filter((item) => item);
- },
- getTaskTeamName(item) {
- if (!item || item.teamName === undefined || item.teamName === null) {
- return '';
- }
- return String(item.teamName).trim();
- },
- showTaskTeamName(item) {
- return (
- this.info?.clientEnvironmentId == 9 && !!this.getTaskTeamName(item)
- );
- },
- getCurrentRouteItem() {
- if (
- this.curTaskObj?.taskId !== undefined &&
- this.curTaskObj?.taskId !== null
- ) {
- return this.curTaskObj;
- }
- if (!Array.isArray(this.routeList) || this.routeList.length === 0) {
- return null;
- }
- const currentTaskId =
- this.taskId ??
- this.workOrderInfo?.taskId ??
- this.routeList[this.desIndex]?.taskId;
- if (
- currentTaskId === undefined ||
- currentTaskId === null ||
- currentTaskId === ''
- ) {
- return this.routeList[this.desIndex] || null;
- }
- return (
- this.routeList.find(
- (item) => String(item?.taskId) === String(currentTaskId)
- ) ||
- this.routeList[this.desIndex] ||
- null
- );
- },
- checkCurrentTaskTeamPermission(actionName) {
- const deny = (message) => {
- this.operationType = null;
- this.$message.warning(message);
- return false;
- };
- const currentTask = this.getCurrentRouteItem();
- if (!currentTask) {
- return deny(`未获取到当前工序,不能${actionName}`);
- }
- const executionTeamId = currentTask.executionTeamId;
- if (currentTask.taskId != -1) {
- if (
- executionTeamId === undefined ||
- executionTeamId === null ||
- executionTeamId === ''
- ) {
- return deny(`当前工序未配置执行班组,不能${actionName}`);
- }
- }
- const teamIds = this.getUserTeamIds();
- if (currentTask.taskId != -1) {
- if (!teamIds.length) {
- return deny(`当前用户未配置班组,不能${actionName}`);
- }
- }
- const executionTeamIdStr = String(executionTeamId).trim();
- if (currentTask.taskId != -1) {
- if (!executionTeamIdStr) {
- return deny(`当前工序未配置执行班组,不能${actionName}`);
- }
- if (!teamIds.includes(executionTeamIdStr)) {
- return deny(`当前用户班组无权限${actionName}`);
- }
- }
- return true;
- },
- // 前端筛选
- seekInput() {
- // console.log(activeName);
- if (this.activeName == '0') {
- if (!this.name) return (this.produceTaskList = this.arr);
- this.produceTaskList = this.produceTaskList.filter((item) => {
- return item.name.indexOf(this.name) > -1;
- });
- } else {
- if (!this.name) return (this.factoryworkstationList = this.arrTow);
- this.factoryworkstationList = this.factoryworkstationList.filter(
- (item) => {
- return item.name.indexOf(this.name) > -1;
- }
- );
- }
- },
- // 折叠悬浮中样式调整
- init() {
- this.$store.dispatch('theme/setCollapse', true);
- },
- async getTaskName(value) {
- let res = await nextTask({
- taskId: this.taskObj.id,
- workOrderIds: [value.id]
- });
- const title1 = res.data.map((item) => item.taskTypeName).toString();
- this.title1 = title1 ? title1 : '';
- },
- handleSearch() {
- let obj = {
- keyWord: this.keyWord,
- taskName: this.taskName
- };
- this.$refs.produceOrder.handleSearch(obj);
- //handleSearch(this.code);
- },
- handleNodeClickNew(info) {
- // this.current = info;
- let current = { id: info.id };
- this.$store.commit('user/currentObj', current);
- },
- setRootId(id) {
- this.rootId = id;
- },
- handleChoose(val) {
- console.log(val);
- },
- handleFull() {
- this.isFullscreen = !this.isFullscreen;
- this.$forceUpdate();
- },
- // 获取工序列表
- getTaskList() {
- listTask().then((res) => {
- res.map((v) => {
- v.newName = `${v.workCenterName}-${v.name}`;
- });
- this.produceTaskList = res;
- this.arr = JSON.parse(JSON.stringify(this.produceTaskList));
- });
- },
- // 获取工位
- getFactoryworkstationPageList() {
- factoryworkstationPage({ pageNum: 1, size: 99999999 }).then((res) => {
- this.factoryworkstationList = res.list;
- this.arrTow = JSON.parse(JSON.stringify(this.factoryworkstationList));
- // newName
- });
- },
- changeCancel(activeType) {
- this.isStep = false;
- this.chooseType = activeType;
- if (this.chooseType == '1') {
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getDataList(this.workData.code);
- });
- } else if (this.chooseType == '2') {
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getPleaseData(this.workData.code);
- });
- }
- },
- closeForm() {
- this.isOutsource = false;
- this.isPleaseEntrust = false;
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getDataList(this.workData.code);
- });
- },
- outScucc() {
- // this.operationType = null;
- this.isOutsource = false;
- this.isPleaseEntrust = false;
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getDataList(this.workData.code);
- });
- },
- async changePlugIn(e, index) {
- if (index == '1') {
- this.outObj = e;
- let req = {
- taskId: e.taskId,
- taskIds: e.taskIds,
- workOrderId: e.workOrderId,
- quantity: e.formedNumLast
- };
- const URL =
- index == '1' ? checkOutsourceMaterial : checkPleaseEntrust;
- const res = await URL(req);
- this.outObj = { ...res.data, ...this.outsourceForm, ...this.outObj };
- this.isStep = false;
- this.isOutsource = true;
- } else if (index == '2') {
- this.outObj = e;
- let req = {
- taskId: e.taskId,
- taskIds: e.taskIds,
- workOrderId: e.workOrderId,
- quantity: e.formedNumLast
- };
- const res = await checkPleaseEntrust(req);
- this.outObj = { ...res.data, ...this.outsourceForm, ...this.outObj };
- this.isStep = false;
- this.isPleaseEntrust = true;
- }
- },
- pickingWokeClose() {
- this.wokePopup = false;
- },
- async open(row) {
- this.drawerKey++;
- this.curTaskObj = null;
- this.workOrderInfo = row;
- this.routeObj.id = this.workOrderInfo.id;
- this.operationType = '';
- this.resetFirstArticlePickFeedStatus();
- await this.getPlanDotLineConfig();
- // this.getTaskFn();
- this.drawer = true;
- // this.getOrderData();
- await this.getOrderData();
- await this.getTaskFn();
- },
- async getOrderData() {
- await workorderInfo(this.workOrderInfo.id).then((res) => {
- this.workOrderInfo = res;
- this.workStepQueryParam.taskId = this.workOrderInfo.taskId;
- this.workStepQueryParam.workOrderId = this.workOrderInfo.id;
- this.workStepQueryParam.bomCategoryId =
- this.workOrderInfo.bomCategoryId;
- this.singleReportInspection = this.workOrderInfo.singleReport;
- });
- },
- handleClose() {
- this.drawer = false;
- },
- feedSuccess() {
- this.getOrderData();
- this.getTaskFn();
- this.refreshFirstArticlePickFeedStatus();
- },
- jobSuccess() {
- this.getOrderData();
- this.getTaskFn();
- },
- reloadData() {
- this.getOrderData();
- this.getTaskFn();
- },
- warehouseSuccess() {
- this.getOrderData();
- this.getTaskFn();
- },
- async getTaskFn() {
- const res = await getTaskInstanceList(this.workOrderInfo.id);
- this.routeList = Array.isArray(res) ? res : [];
- console.log(this.routeList, 'routeList');
- console.log(this.workOrderInfo, 'this.workOrderInfo');
- if (!this.routeList.length) {
- this.desIndex = 0;
- this.activeIndex = 0;
- this.newId = '';
- this.workData = this.workOrderInfo;
- return;
- }
- await this.syncPlanDotLineRouteList();
- const index = this.routeList.findIndex(
- (item) => item.taskId == this.workOrderInfo.taskId
- );
- const currentIndex = index > -1 ? index : 0;
- this.desIndex = currentIndex;
- console.log(this.routeList, '888888');
- this.newId = this.routeList[currentIndex]?.taskId || '';
- if (this.workOrderInfo.taskId != -2) {
- this.curTaskObj = JSON.parse(JSON.stringify(this.routeObj));
- } else {
- this.curTaskObj = JSON.parse(JSON.stringify(this.routeList[0] || {}));
- this.desIndex = 0;
- }
- this.activeIndex = currentIndex;
- this.workData = this.workOrderInfo;
- if (this.routeList[currentIndex]) {
- this.handIdx(this.activeIndex, this.routeList[currentIndex]);
- }
- },
- async getCodeData(req) {
- await parameterGetByCode({ code: 'enable_quality_plus' }).then(
- (res) => {
- if (res.value == '1') {
- this.$refs.jobRefs.open(req);
- }
- }
- );
- },
- getCraftFileProductCode(row) {
- return (
- row?.productCode ||
- row?.materialCode ||
- row?.categoryCode ||
- row?.productCategoryCode ||
- ''
- );
- },
- buildCraftFileReq(row, workOrderId) {
- return {
- taskId: this.taskObj.id,
- workOrderId:
- workOrderId || row?.workOrderId || row?.mesWorkOrderId || row?.id,
- productCode: this.getCraftFileProductCode(row)
- };
- },
- async openWorkFile(req) {
- const res = await parameterGetByCode({
- code: 'mes_craft_file_by_category_code'
- });
- const byCategory = res?.value === '1';
- if (byCategory) {
- this.$refs.wokePopupRef.openTwo(req);
- } else {
- this.$refs.wokePopupRef.open(req);
- }
- },
- async checkQualityResult() {
- if (
- this.taskObj &&
- this.workListIds.length > 0 &&
- this.taskObj.id != -1
- ) {
- // 判断是否要求先完成 产前准备等事项
- const result = await checkProductionResult({
- produceTaskId: this.taskObj.id,
- workOrderIds: this.workListIds
- });
- return result;
- }
- },
- getSelectedWorkOrderRows() {
- if (this.workOrderInfo && Object.keys(this.workOrderInfo).length) {
- return [this.workOrderInfo];
- }
- return this.workListIds.map((id) => ({ id }));
- },
- async validateTaskAssignBeforeWorkOrderJob() {
- if (this.info?.clientEnvironmentId != 9 || this.taskObj.id == -1) {
- return true;
- }
- const rows = this.getSelectedWorkOrderRows();
- try {
- const reportList = await Promise.all(
- rows.map(async (row) => {
- const workOrderId =
- row.id || row.workOrderId || row.mesWorkOrderId;
- const taskId = this.taskObj.id || this.workTaskId || row.taskId;
- const res = await getTaskReport({ workOrderId, taskId });
- return {
- row,
- data: res.data || {}
- };
- })
- );
- for (const { row, data } of reportList) {
- if (Object.keys(data).length == 0 || data.isAssign != 1) {
- continue;
- }
- if (data.reportCheck != 1) {
- this.$message.warning(
- `工单${
- row.code || row.workOrderCode || ''
- }未完成任务报工,不能报工`
- );
- return false;
- }
- }
- } catch (error) {
- this.$message.warning('任务派单校验失败,请稍后重试');
- return false;
- }
- return true;
- },
- resetFirstArticlePickFeedStatus() {
- this.firstArticlePickFeedReady = true;
- this.firstArticlePickFeedMsg = '';
- this.firstArticlePickFeedCheckKey = '';
- },
- getFirstArticleWorkOrderId(row = {}) {
- return row.id || row.workOrderId || row.mesWorkOrderId;
- },
- getFirstArticleInspectionRows() {
- if (this.workOrderInfo && Object.keys(this.workOrderInfo).length) {
- return [this.workOrderInfo];
- }
- return this.workListIds.map((id) => ({ id }));
- },
- async checkFirstArticlePickFeed(row) {
- const workOrderId = this.getFirstArticleWorkOrderId(row);
- const taskId = this.taskObj.id;
- if (!workOrderId || !taskId) {
- return true;
- }
- return checkFeedStatus({ taskId, workOrderId });
- },
- async refreshFirstArticlePickFeedStatus() {
- if (this.info?.clientEnvironmentId != 9 || this.activeName !== '0') {
- this.resetFirstArticlePickFeedStatus();
- return true;
- }
- if (!this.hasFirstArticleInspectionTarget) {
- this.resetFirstArticlePickFeedStatus();
- return true;
- }
- const rows = this.getFirstArticleInspectionRows();
- const checkKey = `${this.activeName}-${rows
- .map(
- (row) =>
- `${this.taskObj.id}-${this.getFirstArticleWorkOrderId(row)}`
- )
- .join(',')}`;
- this.firstArticlePickFeedCheckKey = checkKey;
- this.firstArticlePickFeedReady = false;
- this.firstArticlePickFeedMsg = '正在检查领料、投料状态';
- try {
- const needPromptList = await Promise.all(
- rows.map((row) => this.checkFirstArticlePickFeed(row))
- );
- if (this.firstArticlePickFeedCheckKey !== checkKey) {
- return this.firstArticlePickFeedReady;
- }
- const needPrompt = needPromptList.some(Boolean);
- this.firstArticlePickFeedReady = !needPrompt;
- this.firstArticlePickFeedMsg = needPrompt
- ? '请先完成领料、投料后再进行首件两检'
- : '';
- return this.firstArticlePickFeedReady;
- } catch (error) {
- if (this.firstArticlePickFeedCheckKey === checkKey) {
- this.firstArticlePickFeedReady = false;
- this.firstArticlePickFeedMsg = '领料、投料状态检查失败,请稍后重试';
- }
- return false;
- }
- },
- async validateFirstArticlePickFeedBeforeInspection() {
- const ready = await this.refreshFirstArticlePickFeedStatus();
- if (!ready) {
- this.$message.warning(
- this.firstArticlePickFeedMsg || '请先完成领料、投料后再进行首件两检'
- );
- }
- return ready;
- },
- async footBtn(t) {
- this.workPlanType = '';
- console.log('t', t);
- // this.operationType = t;
- // 新增判断 *** 出现弹窗的时候不然右边数据消失
- if (['work', 'workStep', 'task'].includes(t)) {
- this.popupType = t;
- } else if (t === 'workOrder') {
- if (this.workListIds.length == 0) {
- this.$message.warning('请选择工单');
- return false;
- }
- if (this.workListIds.length > 1) {
- this.$message.warning('工单交接只能选择一个工单');
- return false;
- }
- this.operationType = t;
- } else {
- this.operationType = t;
- }
- if (
- Object.keys(this.$store.state.user.taskObj).length === 0 &&
- this.$store.state.user.taskObj.constructor === Object
- ) {
- this.$message.warning('请选择工序');
- return true;
- }
- if (['pick', 'feed', 'job', 'work', 'workStep', 'task'].includes(t)) {
- this.isFinalCheckProduction = false;
- if (this.$store.state.user.info.clientEnvironmentId == 9) {
- if (t == 'feed') {
- if (!this.$store.state.user.info.workCenterIds) {
- return this.$message.warning('该用户没有权限投料');
- }
- const isWorkCenter =
- this.$store.state.user.info.workCenterIds.includes(
- this.taskObj.workCenterId
- );
- if (!isWorkCenter) {
- return this.$message.warning('该用户没有权限投料');
- }
- }
- }
- this.isFinalCheckProduction = true;
- if (this.workListIds.length == 0) {
- this.$message.warning('请选择工单列表');
- return false;
- }
- if ((t === 'feed' || t === 'job') && this.planDotLineEnabled) {
- const actionName = t === 'feed' ? '投料' : '报工';
- if (!this.checkCurrentTaskTeamPermission(actionName)) {
- return false;
- }
- }
- }
- // console.log('按钮被点击了.....', t);
- if (t === 'job') {
- let req = {
- taskId: this.taskObj.id,
- workOrderId: this.workListIds[0],
- data: [this.workOrderInfo]
- };
- this.isFinalCheckProduction = false;
- if (this.$store.state.user.info.clientEnvironmentId == 9) {
- if (!this.$store.state.user.info.workCenterIds) {
- return this.$message.warning('该用户没有权限报工');
- }
- const isWorkCenter =
- this.$store.state.user.info.workCenterIds.includes(
- this.taskObj.workCenterId
- );
- if (!isWorkCenter) {
- return this.$message.warning('该用户没有权限报工');
- }
- }
- if (!(await this.validateTaskAssignBeforeWorkOrderJob())) return;
- if (this.taskObj.id != '-1') {
- const result = await this.checkQualityResult();
- if (!result) return;
- const firstArticleResult =
- result.firstArticleDualInspectionResult ?? true;
- if (!firstArticleResult) {
- this.$message.warning('请完成首件两检再报工!');
- return;
- }
- }
- this.isFinalCheckProduction = true;
- // }
- if (
- this.taskObj.type == 2 ||
- this.taskObj.type == 3 ||
- this.taskObj.type == 6
- ) {
- // this.$refs.jobRefs.open(req);
- this.getCodeData(req);
- }
- }
- if (t == 'pick') {
- this.$nextTick(() => {
- this.$refs.pickListRef.getList(this.workListIds);
- });
- }
- // 工步
- if (t === 'workStep') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('工步只能选择一个工单!');
- }
- this.$refs.workStepRef.open(this.workStepQueryParam);
- }
- if (t === 'task') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('任务只能选择一个工单!');
- }
- this.$refs.taskDialogRef.open(
- this.workStepQueryParam,
- this.workOrderInfo
- );
- }
- // this.$refs.prenatalExaminationRef.open(
- // this.workData.list[0],
- // this.produceTaskInfo,
- // type
- // );
- if (t == 'prenatalExamination') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('产前准备只能选择一个工单!');
- }
- this.$refs.prenatalExaminationRef.open(
- this.workOrderInfo,
- this.taskObj,
- 1
- );
- }
- if (t == 'postpartumExamination') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('产后检查只能选择一个工单!');
- }
- this.$refs.prenatalExaminationRef.open(
- this.workOrderInfo,
- this.taskObj,
- 3
- );
- }
- if (t == 'processDetection') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('过程控制只能选择一个工单!');
- }
- this.$refs.prenatalExaminationRef.open(
- this.workOrderInfo,
- this.taskObj,
- 2
- );
- }
- if (t === 'error') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('异常只能选择一个工单!');
- }
- // console.log(this.workListIds, 'this.workListIds');
- this.$refs.createErrorRef.open('add', this.workOrderInfo);
- }
- if (t === 'work') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('工艺文件只能选择一个工单!');
- }
- const req = this.buildCraftFileReq(
- this.workOrderInfo,
- this.workListIds[0]
- );
- await this.openWorkFile(req);
- }
- if (t == 'feed') {
- }
- if (t == 'encoding') {
- this.$refs.encodingDialogRef.open([this.workOrderInfo]);
- }
- // 委外
- if (t == 'Outsourcing') {
- if (this.workListIds.length > 1) {
- return this.$message.warning('委外工序只能选择一个工单!');
- } else if (this.workListIds.length < 1)
- return this.$message.warning('请选择工单!');
- else {
- // /
- this.handOutsource(this.workListIds[0]);
- }
- }
- if (t == 'qualityInspection') {
- if (this.workListIds.length < 1) {
- return this.$message.warning('请选择工单!');
- }
- if (this.workListIds.length > 1) {
- return this.$message.warning('首件两检只能选择一个工单!');
- }
- if (!(await this.validateFirstArticlePickFeedBeforeInspection())) {
- return;
- }
- const req = this.buildCraftFileReq(
- this.workOrderInfo,
- this.workOrderInfo.id
- );
- this.$refs.qualityInspectionRef.open(
- this.workOrderInfo,
- this.taskObj,
- '',
- req
- );
- }
- },
- handIdx(index, item) {
- console.log(this.routeList, 'routeList');
- console.log(index, item, 'handIdx');
- if (item.count > 0 || index == this.desIndex) {
- this.taskId = item.taskId;
- } else {
- if (item.taskId != -2) {
- this.$message.info('还未执行到此工序');
- return;
- }
- }
- this.curTaskObj = JSON.parse(JSON.stringify(item));
- console.log(item, 'item');
- this.feedNeedEquipment = item.feedNeedEquipment;
- this.reportNeedFeed = item.reportNeedFeed;
- let obj = {
- 1: `${item.taskTypeName}(普通工序)`,
- 3: `${item.taskTypeName}(质检工序)`,
- 4: `${item.taskTypeName}(包装工序)`,
- 5: `${item.taskTypeName}(入库工序)`,
- 6: `${item.taskTypeName}(质检工序)`
- };
- this.title = obj[item.type] || '';
- this.type = item.type;
- let taskObj = {};
- taskObj = this.routeList.find((e) => e.taskId === item.taskId);
- taskObj.id = taskObj.sourceTaskId;
- taskObj.isOrderListData = true;
- if (taskObj.taskId != 2) {
- this.$store.commit('user/setTaskObj', taskObj);
- this.workListIds = [this.workOrderInfo.id];
- }
- if (item.taskId != -2) {
- this.desIndex = index;
- this.newId = this.routeList[this.desIndex].taskId || '';
- this.getTaskName(this.workOrderInfo);
- }
- this.refreshFirstArticlePickFeedStatus();
- },
- outsourcingAdd(type, activeName) {
- this.chooseType = activeName;
- this.getTaskInstanceByIdFn(this.workListIds[0]);
- // this.isStep = true;
- this.workInfoList = { list: [] };
- this.workInfoList.list.push(this.workData);
- if (this.chooseType == '2') {
- this.isStep = true;
- } else {
- this.isOutsource = true;
- }
- },
- async handOutsource(workOrderId) {
- this.isType = '';
- // return
- let param = {
- taskId: this.taskObj.id,
- workOrderId: workOrderId
- };
- await pcCheckOutsource(param).then((res) => {
- this.outsourceForm = {
- ...res.data
- };
- this.isStep = false;
- this.isOutsource = false;
- this.isPleaseEntrust = false;
- // this.outsourceForm.name = this.taskObj.taskTypeName + '委外';
- if (res.data.outsource) {
- this.isType = '3';
- // this.getTaskInstanceByIdFn(workOrderId);
- if (!this.isStep && !this.isOutsource && !this.isPleaseEntrust) {
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getDataList(this.workData.code);
- });
- }
- } else {
- return this.$message.warning('此工序不能委外');
- }
- });
- },
- closeWorkPlan(type) {
- this.workPlanType = type;
- },
- closeWorkOrderHandover() {
- this.operationType = null;
- },
- async workOrderHandoverSuccess() {
- this.closeWorkOrderHandover();
- await this.getOrderData();
- await this.getTaskFn();
- },
- refreshPlease() {
- this.$nextTick(() => {
- this.$refs.outsourcingListRef.getPleaseData(
- this.workData.list[0].code
- );
- });
- },
- //获取工单列表
- getTaskInstanceByIdFn(workOrderId) {
- getTaskInstanceById(workOrderId).then((res) => {
- let { data } = res;
- if (data.length) {
- data = data.filter(
- (item) => item.taskId != -2 && item.taskId != -1
- );
- let arr = data.findIndex(
- (item) => item.sourceTaskId == this.taskObj.id
- );
- if (arr != -1) {
- data.splice(0, arr);
- }
- this.$set(this.outsourceForm, 'newStepsList', data);
- }
- });
- },
- pickAdd() {
- this.checkPick();
- // this.pickingShow = true;
- },
- closePrenatalExamination() {
- // this.checkProductionResult();
- },
- async checkPick() {
- await checkRepeatPick({
- workOrderId: this.workListIds[0]
- }).then((res) => {
- if (res.data == 0) {
- this.pickingShow = true;
- } else {
- this.$confirm('已经有领料是否继续重复领料?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- })
- .then(() => {
- this.pickingShow = true;
- })
- .catch(() => {});
- }
- });
- },
- // 关闭领料弹窗
- pickingClose(val) {
- if (val) {
- this.$nextTick(() => {
- this.$refs.pickListRef.getList(this.workListIds);
- });
- this.refreshFirstArticlePickFeedStatus();
- }
- this.pickingShow = false;
- },
- rowClick(row, taskId) {
- if (taskId) {
- let params = {
- categoryId: row.categoryId,
- taskId: taskId
- };
- getByTaskId(params).then((res) => {
- this.BomObj = res.data;
- this.$forceUpdate();
- });
- }
- }
- },
- mounted() {
- this.$nextTick(() => {
- const targetElements =
- document.getElementsByClassName('ele-admin-tabs');
- if (targetElements.length > 0) {
- // 遍历所有具有 'ele-admin-tabs' 类的元素
- Array.from(targetElements).forEach((element) => {
- // 对每个元素添加 'new-ele-admin-tabs' 类
- element.classList.add('new-ele-admin-tabs');
- });
- }
- });
- },
- destroyed() {
- this.$nextTick(() => {
- const targetElements =
- document.getElementsByClassName('ele-admin-tabs');
- if (targetElements.length > 0) {
- Array.from(targetElements).forEach((element) => {
- element.classList.remove('new-ele-admin-tabs');
- });
- }
- });
- }
- };
- </script>
- <style lang="scss" scoped>
- .footBtn {
- position: absolute;
- bottom: 20px;
- left: 0;
- }
- .new-ele-admin-tabs {
- display: none !important;
- }
- .c_title {
- color: #157a2c;
- font-size: 16px;
- font-weight: bold;
- }
- .tableZ_box {
- border: 1px solid #e3e5e5;
- margin: 6px 0;
- &:last-child {
- border-bottom: none;
- }
- .row {
- width: 100%;
- display: flex;
- }
- .col {
- width: calc(100% / 5);
- display: flex;
- align-items: center;
- min-width: 200px;
- min-height: 32px;
- border-bottom: 1px solid #e3e5e5;
- border-right: 1px solid #e3e5e5;
- &:last-child {
- border-right: none;
- }
- .name {
- display: flex;
- align-items: center;
- padding: 4px;
- width: 80px;
- height: 100%;
- background-color: #d0e4d5;
- color: #000;
- }
- .content {
- padding: 4px 6px;
- color: #000;
- }
- }
- .pd6 {
- padding: 0 6px;
- }
- }
- </style>
- <style lang="scss" scoped>
- .seek-list {
- display: flex;
- height: 42px;
- justify-content: space-between;
- align-items: center;
- padding: 10px 10px;
- }
- .right_main_box {
- background-color: #fff;
- height: 100%;
- box-sizing: border-box;
- }
- .index_box {
- padding: 10px;
- padding-bottom: 0;
- width: 100%;
- box-sizing: border-box;
- min-width: 1280px !important;
- // height: calc(100vh - 60px);
- // overflow-x: auto;
- /* 当内容超出宽度时,允许水平滚动 */
- white-space: nowrap;
- /* 防止内部文本换行,确保所有内容都在一行显示 */
- scrollbar-width: thin;
- /* 设置滚动条宽度(浏览器兼容性可能有所不同) */
- scrollbar-color: #40a9ff transparent;
- /* 设置滚动条颜色和轨道颜色(同样,浏览器兼容性) */
- }
- .main {
- width: 100%;
- min-width: 1280px;
- height: calc(100vh - 234px);
- display: flex;
- justify-content: space-between;
- }
- .left_main {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: space-around;
- // min-width: 640px;
- .top {
- width: 100%;
- height: 100%;
- overflow: auto;
- }
- // .bottom {
- // width: 100%;
- // min-height: calc((100vh - 70px - 50px - 80px - 20px) / 2);
- // overflow: hidden;
- // }
- }
- ::v-deep .el-tabs__item.is-active {
- background-color: #dffade;
- /* 蓝色背景 */
- color: #333;
- }
- ::v-deep .is-active {
- color: #dffade;
- }
- .right_main {
- width: 100%;
- padding-bottom: 12px;
- height: 100%;
- overflow: auto;
- background: #f0f3f3;
- border: 1px solid rgb(207, 215, 207);
- }
- .drawer_content {
- margin: 5px 10px;
- box-sizing: border-box;
- .process-route-steps {
- min-height: 120px;
- padding: 18px 8px 22px;
- box-sizing: border-box;
- }
- .taskTitle {
- display: flex;
- width: 100%;
- align-items: center;
- flex-direction: row;
- justify-content: center;
- font-size: 16px;
- color: green;
- margin-bottom: 5px;
- font-weight: bold;
- }
- }
- ::v-deep .is-fullscreen {
- width: 100vw !important;
- height: 100vh !important;
- overflow: hidden !important; /* 隐藏滚动条 */
- }
- ::v-deep .not-fullscreen {
- width: calc(100vw - 230px) !important;
- height: 100vh !important;
- overflow: hidden !important; /* 隐藏滚动条 */
- }
- ::v-deep .active .is-text {
- background: #ffa929; /* 背景色 */
- border-color: #ffa929;
- color: #ffffff; /* 图标文字颜色 */
- }
- ::v-deep .process-route-steps {
- .el-step__main {
- padding-top: 10px;
- }
- .el-step__title {
- font-size: 15px;
- font-weight: 500;
- line-height: 1.45;
- }
- .step-team-name {
- margin-top: 4px;
- color: #606266;
- font-size: 13px;
- font-weight: 400;
- line-height: 1.2;
- word-break: break-all;
- }
- .el-step__icon {
- width: 32px;
- height: 32px;
- font-size: 18px;
- }
- }
- ::v-deep .el-tabs__content {
- padding: 1px !important;
- }
- </style>
|