This commit is contained in:
TianyangZhang 2025-12-08 10:03:29 +08:00
commit d2b0ed6f67
13 changed files with 641 additions and 135 deletions

454
src/views/home/my.vue Normal file
View File

@ -0,0 +1,454 @@
<template>
<div style="padding: 10px">
<div class="company-card-compact">
<div class="company-main-content">
<div class="company-header-compact">
<h2 class="company-name-compact">光芯科技</h2>
<div class="mission-tag-compact">
<span class="mission-icon-compact"></span>
<span class="mission-text-compact">材料创造美好世界</span>
</div>
</div>
<div class="company-desc-compact">
<p>公司秉承"善用资源,服务建设"的核心理念践行"材料创造美</p>
<p>好世界"的企业使命,坚持"创新绩效和谐责任"的核心价</p>
<p>值观努力成长为具有创新精神和全球视野的光芯材料领先企业</p>
</div>
</div>
<div class="company-chip-compact">
<div class="chip-symbol"></div>
</div>
</div>
<div class="statsContainer">
<div class="statCard" @click="goDuty">
<div class="statTitle">我的待办</div>
<div class="statNumber">{{ dutyCount }}</div>
</div>
<div class="statCard" @click="goOwner">
<div class="statTitle">我提交的</div>
<div class="statNumber">{{ ownerCount }}</div>
</div>
</div>
<div class="quickActionsCard">
<div class="quickActionsTitle">发起流程</div>
<div class="quickActionsGrid">
<div class="actionItem" v-for="group in wfOptions" :key="group.category" @click="startGroup(group)">
<div class="actionIcon"></div>
<div class="actionLabel">{{ group.category }}</div>
</div>
</div>
</div>
</div>
<el-dialog v-model="dialogVisible" :title="dialogTitle">
<el-card
v-for="item in currentWfList"
:key="item.id"
:body-style="{ padding: '10px', cursor: 'pointer' }"
style="width: 180px; display: inline-block; margin: 4px; background-color: #f5f7fa;"
shadow="hover"
@click="startTicket(item)"
>
{{ item.name }}
</el-card>
</el-dialog>
<el-drawer v-model="drawer" size="90%" :show-close="false">
<template #header="{ close, titleId, titleClass }">
<h4 :id="titleId" :class="titleClass">{{drawerName}}</h4>
<el-button type="danger" @click="close">关闭</el-button>
</template>
<component :is="currentComponent" :ticketId="ticketId" :t_id="t_id" @closed="drawer = false"
@success="handleSuccess"></component>
</el-drawer>
</template>
<script setup>
import { ref, onMounted, markRaw, defineAsyncComponent } from 'vue'
import API from '@/api'
import TOOL from "@/utils/tool.js";
const dutyCount = ref(0);
const ownerCount = ref(0);
onMounted(() => {
getTicketCount();
getWfOptions();
})
const getTicketCount = () => {
API.wf.ticket.list.req({page: 1, page_size: 0, category: "duty"}).then(res=>{
dutyCount.value = res.count
})
API.wf.ticket.list.req({page: 1, page_size: 0, category: "owner"}).then(res=>{
ownerCount.value = res.count
})
}
const goDuty = () => {
window.location.href = "/#/wf/myticket?category=duty"
}
const goOwner = () => {
window.location.href = "/#/wf/myticket?category=owner"
}
const wfOptions = ref([])
const getWfOptions = () => {
let permissions = TOOL.data.get("PERMISSIONS");
const groups = {};
API.wf.workflow.list.req({ page: 0 }).then((res) => {
res.forEach((item) => {
if(item.key && permissions.includes(item.key)) {
let cate = item.cate;
if (!cate){cate="未分组"}
if (!groups[cate]) {
groups[cate] = [];
}
groups[cate].push(item);
}
})
// 便
wfOptions.value = Object.keys(groups).map(category => ({
category,
items: groups[category]
}));
});
}
const dialogVisible = ref(false)
const currentWfList = ref([]);
const dialogTitle = ref("");
const startGroup = (group) => {
dialogVisible.value = true;
dialogTitle.value = group.category;
currentWfList.value = group.items;
}
const drawer = ref(false)
const drawerName = ref(null)
const currentComponent = ref(null)
const ticketId = ref(null)
const t_id = ref(null)
const startTicket = (item) => {
dialogVisible.value = false;
drawer.value = true;
t_id.value = null;
drawerName.value = item.name;
const viewPath = item.view_path;
// import
currentComponent.value = markRaw(
defineAsyncComponent(() => import(`@/views${viewPath}.vue`))
);
}
const handleSuccess = () => {
drawer.value = false;
getTicketCount();
}
</script>
<style scoped>
.company-card-compact {
width: 100%;
background: linear-gradient(135deg,
rgba(58, 149, 255, 0.95) 0%,
rgba(27, 92, 255, 0.95) 100%);
border-radius: 12px;
padding: 20px;
box-sizing: border-box;
display: flex;
align-items: flex-start;
justify-content: space-between;
position: relative;
overflow: hidden;
box-shadow: 0 4px 12px rgba(27, 92, 255, 0.2);
color: #ffffff;
margin-bottom: 10px;
height: auto;
min-height: 160px;
}
.company-card-compact::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(
circle at 90% 20%,
rgba(255, 255, 255, 0.08) 0%,
transparent 60%
);
pointer-events: none;
}
.company-main-content {
flex: 1;
padding-right: 15px;
z-index: 1;
}
.company-header-compact {
margin-bottom: 12px;
}
.company-name-compact {
font-size: 20px;
font-weight: 700;
margin: 0 0 8px 0;
letter-spacing: 0.5px;
line-height: 1.2;
}
.mission-tag-compact {
display: inline-flex;
align-items: center;
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(5px);
border-radius: 12px;
padding: 4px 10px;
border: 1px solid rgba(255, 255, 255, 0.15);
}
.mission-icon-compact {
font-size: 12px;
margin-right: 6px;
}
.mission-text-compact {
font-size: 12px;
font-weight: 500;
opacity: 0.95;
}
.company-desc-compact {
line-height: 1.4;
}
.company-desc-compact p {
margin: 0 0 4px 0;
font-size: 12px;
opacity: 0.9;
line-height: 1.3;
}
.company-desc-compact p:last-child {
margin-bottom: 0;
}
.company-chip-compact {
display: flex;
align-items: center;
justify-content: center;
width: 60px;
height: 60px;
flex-shrink: 0;
z-index: 1;
}
.chip-symbol {
width: 50px;
height: 50px;
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(255, 255, 255, 0.8) 100%);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
font-weight: 700;
color: #1b5cff;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
/* transform: rotate(45deg); */
}
.chip-symbol::before {
content: '';
position: absolute;
top: 4px;
left: 4px;
right: 4px;
bottom: 4px;
border: 1px solid rgba(27, 92, 255, 0.2);
border-radius: 8px;
}
/* 平板适配 */
@media (min-width: 768px) {
.company-card-compact {
padding: 20px 25px;
min-height: 140px;
}
.company-name-compact {
font-size: 22px;
}
.company-desc-compact p {
font-size: 13px;
}
.chip-symbol {
width: 55px;
height: 55px;
font-size: 22px;
}
}
/* 桌面适配 */
@media (min-width: 1024px) {
.company-card-compact {
padding: 20px 30px;
}
.company-name-compact {
font-size: 24px;
}
.company-desc-compact p {
font-size: 14px;
}
.company-chip-compact {
width: 70px;
height: 70px;
}
.chip-symbol {
width: 60px;
height: 60px;
font-size: 24px;
}
}
/* 小屏幕手机适配 */
@media (max-width: 375px) {
.company-card-compact {
padding: 16px;
min-height: 140px;
}
.company-name-compact {
font-size: 18px;
}
.company-desc-compact p {
font-size: 11px;
}
.mission-tag-compact {
padding: 3px 8px;
}
.mission-text-compact {
font-size: 11px;
}
.company-chip-compact {
width: 50px;
height: 50px;
}
.chip-symbol {
width: 45px;
height: 45px;
font-size: 18px;
}
}
/* 数量统计卡片样式 */
.statsContainer {
display: flex;
gap: 15px;
margin-bottom: 10px;
}
.statCard {
flex: 1;
background: white;
border-radius: 12px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
text-align: center;
}
.statTitle {
font-size: 18px;
color: #666;
font-weight: bold;
margin-bottom: 10px;
}
.statNumber {
font-size: 28px;
font-weight: bold;
color: #333;
}
/* 快速操作卡片样式 */
.quickActionsCard {
background: white;
border-radius: 12px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.quickActionsTitle {
font-size: 16px;
font-weight: bold;
color: #333;
margin-bottom: 20px;
padding-left: 8px;
}
.quickActionsGrid {
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 6px;
}
.actionItem {
display: flex;
flex-direction: column;
align-items: center;
cursor: pointer;
transition: transform 0.2s;
}
.actionItem:hover {
transform: translateY(-2px);
}
.actionIcon {
font-size: 24px;
margin-bottom: 8px;
width: 60px;
height: 60px;
background: #f0f7ff;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #1b5cff;
}
.actionLabel {
font-size: 16px;
color: #333;
text-align: center;
font-weight: 500;
}
/* 响应式设计 */
@media (max-width: 768px) {
.quickActionsGrid {
grid-template-columns: repeat(2, 1fr);
}
.statsContainer {
flex-direction: column;
}
}
</style>

View File

@ -223,9 +223,9 @@ export default {
that.year_s = year;
that.month_s = month;
that.day_s = day;
this.getEquipList();
this.getMaterialWarning();
this.getMaterialList();
// this.getEquipList();
// this.getMaterialWarning();
// this.getMaterialList();
},
methods: {
// Class

View File

@ -125,15 +125,19 @@
>
编辑
</el-button>
<!-- 光芯的出入库记录中生产领料不显示提交在生产执行里接收 -->
<span v-if="scope.row.state==10">
<span v-if="scope.row.type=='do_out'&&project_code=='gx'&&(scope.row.mgroup_name!=='外协白片抛'||scope.row.mgroupName!=='外协一次抛'||scope.row.mgroupName!=='外扫')"></span>
<el-button
link
type="primary"
@click="table_submit(scope.row)"
v-auth="'mio.submit'"
v-if="scope.row.state == 10&&scope.row.type!=='do_out'"
v-else
>
提交
</el-button>
</span>
<el-button
link
type="danger"

View File

@ -29,6 +29,7 @@
<el-select
v-model="form.pu_order"
clearable
filterable
style="width: 100%"
>
<el-option
@ -46,6 +47,7 @@
<el-select
v-model="form.supplier"
clearable
filterable
style="width: 100%"
>
<el-option
@ -57,7 +59,7 @@
</el-select>
</el-form-item>
<el-form-item label="销售订单" v-if="form.type == 'sale_out'">
<el-select v-model="form.order" clearable style="width: 100%">
<el-select v-model="form.order" clearable filterable style="width: 100%">
<el-option
v-for="item in orderOptions"
:key="item.id"
@ -84,6 +86,7 @@
<el-select
v-model="form.customer"
clearable
filterable
style="width: 100%"
>
<el-option
@ -101,6 +104,7 @@
<el-select
v-model="form.mgroup"
clearable
filterable
style="width: 100%"
placeholder="为空时代表领料/入库到车间"
@change="mgroupChange"
@ -120,6 +124,7 @@
<el-select
v-model="form.belong_dept"
clearable
filterable
style="width: 100%"
@change="getgetDeptUsers"
>
@ -135,7 +140,7 @@
label="部门执行人" prop="do_user"
v-if="(form.type == 'do_in' || form.type == 'do_out'|| form.type == 'borrow_out' || form.type == 'return_in')&& htype!='baofei'"
>
<el-select v-model="form.do_user" clearable style="width: 100%">
<el-select v-model="form.do_user" filterable clearable style="width: 100%">
<el-option
v-for="item in userOptions"
:key="item.id"
@ -148,6 +153,7 @@
<el-select
v-model="form.mio_user"
clearable
filterable
style="width: 100%"
>
<el-option

View File

@ -305,6 +305,7 @@ export default {
isSaveing: false,
materialOptions: [],
batchOptions: [],
batchOptions_o: [],
setFiltersVisible: false,
warehouseOptions: [],
// warehouseDisable: false,
@ -349,7 +350,7 @@ export default {
//
getCkUserList() {
let that = this;
this.$API.system.user.list.req({ page: 0, posts__code: "inm&check" })
this.$API.system.user.list.req({ page: 0, posts__code__contains: "inm" })
.then((res) => {
if(that.type==40){
that.userList2 = [];
@ -390,34 +391,28 @@ export default {
});
},
inputChange(e){
console.log('e',e);
let that = this;
if(e!==''&&e!==null&&e!==undefined){
if(e.indexOf('#')>-1){
let codeId = e.split('#')[1];
this.$API.cm.labelmat.item.req(codeId).then((res) => {
if(res){
let arr = that.batchOptions.filter((item) => {
return item.batch == res.batch&&item.state==res.state;
})
if (arr.length > 0) {
that.selectBatch = arr[0].batch;
that.form.batch = arr[0].batch;
that.form.mb = arr[0].id;
that.batchcount = Number(arr[0].count_canmio);
that.form.count = Number(arr[0].count_canmio);
that.form.warehouse = arr[0].warehouse;
that.inputBatchDisable = true;
setTimeout(() => {
options.value = res.batch;
}, 200)
}else{
that.selectBatch = '';
that.$message.error("批次号不存在");
}
that.batchOptions = arr;
}else{
that.selectBatch = '';
}
})
}else{
let arr = that.batchOptions.filter((item) => {
return item.batch.indexOf(e)>-1;
})
that.batchOptions = arr;
}
}else{
that.batchOptions = that.batchOptions_o;
}
},
getMaterialOptions() {
@ -523,7 +518,7 @@ export default {
this.$API.inm.warehouse.batch
.req({ page: 0, material: this.form.material })
.then((res) => {
this.batchOptions = res;
this.batchOptions_o = this.batchOptions = res;
if (res.length == 0) {
this.selectBatchDisable = true;
} else {

View File

@ -110,7 +110,7 @@ export default {
},
methods: {
deptMgroup() {
this.$API.mtm.mgroup.list.req({ page: 0 }).then(res => {
this.$API.mtm.mgroup.list.req({ page: 0,belong_dept__name:'拉丝排板班组' }).then(res => {
this.mgroups = res;
});
},

View File

@ -13,6 +13,8 @@
<el-table-column type="index" width="50" fixed="left"/>
<el-table-column label="产品" prop="物料名" fixed="left" width="120">
</el-table-column>
<el-table-column label="总数" prop="总数" fixed="left" width="80">
</el-table-column>
<el-table-column v-for="item in lists" :key="item" :label="item">
<template #default="scope">
<span v-if="scope.row[item]">{{ scope.row[item] }}</span>
@ -67,6 +69,15 @@ export default {
}
}
})
data2.forEach(item=>{
let total = 0;
that.lists.forEach(list=>{
if(item[list]){
total+= item[list];
}
})
item['总数']= total;
})
that.tableData = data2;
});
},

View File

@ -87,7 +87,7 @@
<el-table-column label="比率" class-name="colorheader3">
<template #default="scope">
<span v-if="scope.row.data['毛坯检测_含缺陷_剪切¢18.3mm不合格_比例']">
<span v-if="scope.row.data['毛坯检测_含缺陷_剪切¢18.3mm可加工_比例']">{{ 100-scope.row.data['毛坯检测_含缺陷_剪切18.3mm不合格_比例']-scope.row.data['毛坯检测_含缺陷_剪切18.3mm可加工_比例'] }}</span>
<span v-if="scope.row.data['毛坯检测_含缺陷_剪切¢18.3mm可加工_比例']">{{ 100-scope.row.data['毛坯检测_含缺陷_剪切18.3mm不合格_比例']-scope.row.data['毛坯检测_含缺陷_剪切18.3mm可加工_比例'] }}%</span>
<span v-else>{{ 100-scope.row.data['毛坯检测_含缺陷_剪切18.3mm不合格_比例'] }}%</span>
</span>
<span v-else>
@ -136,7 +136,7 @@
</el-table-column>
<el-table-column label="比率" class-name="colorheader4">
<template #default="scope">
<span v-if="scope.row.data.毛坯检测_含缺陷_暗点合格_比例">{{ scope.row.data.毛坯检测_含缺陷_暗点不合格_比例?100-scope.row.data.毛坯检测_含缺陷_暗点不合格_比例-scope.row.data.毛坯检测_含缺陷_暗点合格_比例:100-scope.row.data.毛坯检测_含缺陷_暗点合格_比例 }}</span>
<span v-if="scope.row.data.毛坯检测_含缺陷_暗点合格_比例">{{ scope.row.data.毛坯检测_含缺陷_暗点不合格_比例?100-scope.row.data.毛坯检测_含缺陷_暗点不合格_比例-scope.row.data.毛坯检测_含缺陷_暗点合格_比例:100-scope.row.data.毛坯检测_含缺陷_暗点合格_比例 }}%</span>
<span v-else>{{ scope.row.data.毛坯检测_含缺陷_暗点不合格_比例?100-scope.row.data.毛坯检测_含缺陷_暗点不合格_比例:100 }}%</span>
</template>
</el-table-column>
@ -267,7 +267,7 @@
</el-table-column>
<el-table-column label="合格率" class-name="colorheader7">
<template #default="scope">
<span>{{ scope.row.data.毛坯检测_合格率 }}</span>
<span>{{ scope.row.data.毛坯检测_合格率 }}%</span>
</template>
</el-table-column>
</el-table-column>

View File

@ -42,13 +42,13 @@
<scTable v-else ref="tables11" :data="tableData11" id="exportDiv1" stripe hideDo hidePagination
:summary-method="getSummaries2" show-summary row-key="id">
<el-table-column type="index" width="50" />
<el-table-column label="物料名" prop="name" :filters="nameFilters11"
<el-table-column label="物料名" prop="material_name" :filters="nameFilters11"
:filter-method="filterName11" filter-placement="bottom-end" />
<el-table-column label="型号" prop="model" :filters="modelFilters11"
<el-table-column label="型号" prop="material_model" :filters="modelFilters11"
:filter-method="filterModel11" filter-placement="bottom-end" />
<el-table-column label="规格" prop="specification" :filters="specsFilters11"
<el-table-column label="规格" prop="material_specification" :filters="specsFilters11"
:filter-method="filterSpecs11" filter-placement="bottom-end" />
<el-table-column label="仓库合格品数" prop="count_mb" />
<el-table-column label="仓库合格品数" prop="count" />
<el-table-column label="周预估值" v-if="params.type == 30">
<template #default="scope">
<el-input v-model="scope.row.week_esitimate_consume"
@ -274,39 +274,35 @@ export default {
that.nameFilters11 = [];
that.modelFilters11 = [];
that.specsFilters11 = [];
let nameList = [], specsList = [], modelList = [];
if (that.material_name !== '' && that.material_name !== null) {
that.params.name = that.material_name;
}
that.params.query = '{id,name,model,specification,count_mb,week_esitimate_consume}';
this.$API.mtm.material.list.req(that.params).then((res) => {
that.tableData11 = res;
if (res.length > 0) {
res.forEach((ite) => {
if (nameList.indexOf(ite.name) > -1) { } else {
nameList.push(ite.name);
let obj = {};
obj.text = ite.name;
obj.value = ite.name;
let obj = {query: {"material_types": this.params.type,}};
that.$API.bi.dataset.exec.req("materialCount2", obj).then((res) => {
if (res.data2.ds0) {
let data = res.data2.ds0;
that.tableData11 = data;
if(data.length>0){
data.forEach((ite)=>{
if (that.nameFilters11.findIndex(i=>i.value==ite.material_name)<0) {
let obj={};
obj.text=ite.material_name;
obj.value=ite.material_name;
that.nameFilters11.push(obj);
}
if (modelList.indexOf(ite.model) > -1) { } else {
modelList.push(ite.model);
let obj2 = {};
obj2.text = ite.model;
obj2.value = ite.model;
if (that.modelFilters11.findIndex(i=>i.value==ite.material_model)<0) {
let obj2={};
obj2.text=ite.material_model;
obj2.value=ite.material_model;
that.modelFilters11.push(obj2);
}
if (specsList.indexOf(ite.specification) > -1) { } else {
specsList.push(ite.specification);
let obj3 = {};
obj3.text = ite.specification;
obj3.value = ite.specification;
if (that.specsFilters11.findIndex(i=>i.value==ite.material_specification)<0) {
let obj3={};
obj3.text=ite.material_specification;
obj3.value=ite.material_specification;
that.specsFilters11.push(obj3);
}
});
})
}
});
}
})
},
materialTypeChange() {
let that = this;
@ -329,17 +325,31 @@ export default {
"select_material": "",
"groupby_material": ""
};
if(that.params.type==40){
query.select_material="material.cate as cate";
query.groupby_material="material.cate";
query.select_material_name = "";
query.groupby_material_name = "";
let query2 = {
"material_types": this.params.type,
"select_material": "material.name as material_name",
"groupby_material": "material.name"
}
if(that.params.type==10||that.params.type==20){
this.$API.bi.dataset.exec.req("materialCount", {query:query }).then((res) => {
if (res.echart_options) {
this.echartsOptions = JSON.parse(res.echart_options);
}
})
}else{
if(that.params.type==40){
query2.select_material="material.cate as cate";
query2.groupby_material="material.cate";
query2.select_material_name = "";
query2.groupby_material_name = "";
}
this.$API.bi.dataset.exec.req("materialCount2", {query:query2 }).then((res) => {
if (res.echart_options) {
this.echartsOptions = JSON.parse(res.echart_options);
}
})
}
},
//
weekcountChange(row) {
@ -521,13 +531,13 @@ export default {
return row.dept_name == value;
},
filterName11(value, row) {
return row.name == value;
return row.material_name == value;
},
filterSpecs11(value, row) {
return row.specification == value;
return row.material_specification == value;
},
filterModel11(value, row) {
return row.model == value;
return row.material_model == value;
},
filterName2(value, row) {
return row.物料名 == value;

View File

@ -11,7 +11,7 @@
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'&&componentsShow"
v-if="values == '日志'&&componentsShow&&!isFeiPinku"
:mgroupName="mgroupName"
:mgroupId="mgroupId"
:deptId="mgroupDept"
@ -23,7 +23,7 @@
style="height: 100%"
></mlogs>
<!-- 隐藏任务 -->
<div v-if="values == '日志'&&componentsShow&&mtaskVisible" class="iconWrap" @click="hiddenMtask">
<div v-if="values == '日志'&&componentsShow&&mtaskVisible&&!isFeiPinku" class="iconWrap" @click="hiddenMtask">
<span class="iconSpan">
<el-icon>
<el-icon-arrow-down />
@ -31,7 +31,7 @@
</span>
</div>
<!-- 显示任务 -->
<div v-if="values == '日志'&&componentsShow&&!mtaskVisible" class="iconWrap iconWrapBottom" @click="showMtask">
<div v-if="values == '日志'&&componentsShow&&!mtaskVisible&&!isFeiPinku" class="iconWrap iconWrapBottom" @click="showMtask">
<span class="iconSpan iconSpanBottom">
<el-icon>
<el-icon-arrow-up />
@ -39,7 +39,7 @@
</span>
</div>
<mtask
v-if="values == '日志'&&componentsShow"
v-if="values == '日志'&&componentsShow&&!isFeiPinku"
:mgroupName="mgroupName"
:mgroupId="mgroupId"
:deptId="mgroupDept"
@ -50,6 +50,15 @@
id="mtask"
style="height: 40%;display: none;"
></mtask>
<inm v-else-if="values == '库存'&&componentsShow&&isFeiPinku"
:mgroupName="mgroupName"
:mgroupId="mgroupId"
:deptId="mgroupDept"
:process = "mgroupProcess"
:processType = "mgroupProcessType"
:mgroup_code="mgroup_code"
:mgroupMtype = "mgroupMtype"
></inm>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'&&componentsShow"
@ -62,7 +71,7 @@
:mgroupMtype = "mgroupMtype"
></handover>
<!-- 未完成 -->
<inmIn v-else-if="values == '未完成'&&componentsShow"
<inmIn v-else-if="values == '未完成'&&componentsShow&&!isFeiPinku"
:mgroupName="mgroupName"
:mgroupId="mgroupId"
:deptId="mgroupDept"
@ -72,7 +81,7 @@
:mgroupMtype = "mgroupMtype"
></inmIn>
<!-- 已完成 -->
<inmOut v-else-if="values == '已完成'&&componentsShow"
<inmOut v-else-if="values == '已完成'&&componentsShow&&!isFeiPinku"
:mgroupName="mgroupName"
:mgroupId="mgroupId"
:deptId="mgroupDept"
@ -81,7 +90,7 @@
:mgroup_code="mgroup_code"
:mgroupMtype = "mgroupMtype"
></inmOut>
<record v-else-if="values == '出入库记录'"
<record v-else-if="values == '出入库记录'&&componentsShow&&!isFeiPinku"
:mgroupId="mgroupId"
:deptId = "mgroupDept"
:mgroupName="mgroupName"
@ -92,6 +101,7 @@
</el-container>
</template>
<script>
import inm from "../inm/inmScrap.vue";
import inmIn from "./inmIn.vue";
import inmOut from "./inmOut.vue";
import mlogs from "./mlogs.vue";
@ -100,13 +110,13 @@ import record from "./../wpm_gx/inmrecord.vue";
import handover from "./handover.vue";
export default {
name: "bx",
components: { inmIn, mlogs, mtask, handover,inmOut,record },
components: { inm,inmIn, mlogs, mtask, handover,inmOut,record },
data() {
return {
mgroups:[],
tableHieght: 200,
selectedIndex:0,
options: ["日志", "交接记录","未完成", "已完成"],
options: [ "交接记录"],
values: "日志",
mgroupName: "",
mgroupId: "",
@ -116,7 +126,8 @@ export default {
mgroupProcess: '',
mgroupProcessType: '',
componentsShow:false,
mtaskVisible:false
mtaskVisible:false,
isFeiPinku:false,
};
},
mounted() {
@ -126,6 +137,15 @@ export default {
let paths = this.$route.path;
let arr = paths.split("/");
this.mgroup_code = arr[2];
if(this.mgroup_code=='fpk'){
this.isFeiPinku = true;
this.options.unshift('库存');
this.values = '库存';
}else{
this.options.unshift('日志');
this.options.push('未完成');
this.options.push('已完成');
}
if(this.mgroup_code=='chengpingneiwaichujian'||this.mgroup_code=='guangzhuichengpjianc'||
this.mgroup_code=='chengpneizhifujian'||this.mgroup_code=='chengpingxinengjiance'||
this.mgroup_code=='chenpjianchicunjiance'||this.mgroup_code=='chengpwaiguanfujianyi'||
@ -151,6 +171,7 @@ export default {
that.mgroupDept = res[0].belong_dept;
that.mgroupMtype = res[0].mtype;
that.componentsShow = true;
console.log('that.mgroupName',that.mgroupName);
});
},
showMtask(){

View File

@ -64,7 +64,6 @@
v-model="processLists"
:addTemplate="addTemplate"
placeholder="暂无数据"
@add="rowAdd"
>
<el-table-column label="工序">
<template #default="scope">
@ -101,6 +100,27 @@
</div>
</template>
</el-table-column>
<el-table-column label="使用设备">
<template #default="scope">
<el-select
v-if="scope.row.isEdit"
v-model="scope.row.equipment"
placeholder="设备"
class="width-100"
>
<el-option
v-for="item in equipmentOtions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<div v-else>
<span v-if="scope.row.equipment!==null">{{ scope.row.equipment_name}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="操作时间">
<template #default="scope">
<el-date-picker
@ -116,23 +136,6 @@
</div>
</template>
</el-table-column>
<el-form-item v-if="route_code=='pengma'" label="使用设备" prop="equipment">
<template #default="scope">
<el-select
v-model="scope.row.equipment"
placeholder="设备"
class="width-100"
>
<el-option
v-for="item in equipmentOtions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</template>
</el-form-item>
<el-table-column label="班次"></el-table-column>
<el-table-column label="创建时间"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="150px">
@ -514,9 +517,10 @@ export default {
addTemplate:{
mlog: "",
process: "",
equipment: "",
handle_user: "",
handle_user_name: "",
work_start_time: "",
handle_user_name: "",
isEdit: true,
},
qct:null,
@ -540,6 +544,7 @@ export default {
this.apiObj = this.$API.wpm.mlogb.list;
let userInfo = that.$TOOL.data.get("USER_INFO");
that.addTemplate.mlog = that.mlogItem.id;
that.addTemplate.equipment = "";
that.addTemplate.handle_user = userInfo.id;
that.addTemplate.handle_user_name = userInfo.name;
that.addTemplate.work_start_time = this.$TOOL.dateFormat(new Date());

View File

@ -29,7 +29,7 @@
</th>
<th class="w_30 inlineBlock">序号</th>
<th class="w_140 inlineBlock">物料批次</th>
<th class="w_140 inlineBlock">物料编号</th>
<th class="w_150 inlineBlock">物料编号</th>
<th class="w_80 inlineBlock" v-for="item in qct_testitems" :key="item.id">{{ item.testitem_name }}</th>
<th class="w_80 inlineBlock" v-for="item in qct_defects" :key="item.id">{{ item.defect_name }}</th>
<th class="w_80 inlineBlock">备注</th>
@ -48,7 +48,7 @@
<input v-if="row.isEdit" v-model="row.mlogb__batch" placeholder="物料批次">
<span v-else>{{ row.mlogb__batch }}</span>
</td>
<td class="w_140 inlineBlock">
<td class="w_150 inlineBlock">
<input v-if="row.isEdit" v-model="row.number" placeholder="物料编号">
<span v-else>{{ row.number }}</span>
<span v-if="row.wpr_number_out !== null && row.wpr_number_out !== undefined">{{ row.wpr_number_out }}</span>

View File

@ -2,9 +2,9 @@
<el-container>
<el-header>
<div class="left-panel">
<!-- <el-button type="primary" @click="tomio('do_out')" v-auth="'mio.do'"
v-if="mgroupName!=='size'&&mgroupName!=='facade'&&project_code=='gx'"
>领料</el-button> -->
<el-button type="primary" @click="tomio('do_out')" v-auth="'mio.do'"
v-if="mgroupName=='外协白片抛'||mgroupName=='外协一次抛'||mgroupName=='外扫'"
>领料</el-button>
<el-button type="primary" @click="tomio('do_in')" v-auth="'mio.do'">入库</el-button>
<el-button
type="primary"