Commit 2066cccd authored by 周远喜's avatar 周远喜

Merge branch 'product' of http://git.mes123.com/zhouyx/mes-ui into product

parents 3da3304b 29f584a0
......@@ -19,13 +19,19 @@
</div>
<div class="fg">
<div class="tree">
<Tree :data="data" :render="renderContent" ref="tree" @on-select-change="change"></Tree>
<Tree
:data="data"
:render="renderContent"
ref="tree"
@on-select-change="change"
></Tree>
</div>
</div>
</div>
</template>
<script>
import { forEach } from "lodash";
export default {
name: "",
data() {
......@@ -64,7 +70,24 @@ export default {
},
"upId"
);
this.list = this.$u.clone(data);
let creatorUserId = this.$store.state.userInfo.userId;
console.log(creatorUserId);
let list = this.$u.clone(data);
let newlist = [];
list.filter((e, index) => {
let userIds = [];
let obj = {};
if (e.upId == 0) {
userIds = e.userIds.split(",");
userIds.forEach((v) => {
if (creatorUserId == v) {
newlist.push(e);
}
});
}
});
// console.log(newlist);
this.list = newlist;
});
},
toggle() {
......@@ -124,6 +147,7 @@ export default {
let items = this.$u.clone(this.list);
let expand = this.expand;
let result = [];
search(this.keys, items);
function search(keys, data) {
data.map((u) => {
......
......@@ -124,7 +124,7 @@ export default {
// pageIndex: 1,
departmentId: id,
type: this.type,
roleTitle: this.roleTitle,
roleTitle: this.roleTitle, //检验
// pageSize: 0
};
if (this.type == 99) { //开发组
......
......@@ -946,6 +946,7 @@ export default {
taskCode: '甲方任务号',
putintDocmentCode: '甲方投产输入文件(编号)',
technologyDocmentCode: '甲方技术输入文件(编号)',
productionType:'生产类型'
},
mes_part_task_plan_simulate: {
id: '',
......
<template>
<div style="padding: 0;" class="excute">
<DataGrid
style="margin-top:2px; margin-bottom: -5px;"
:columns="columns"
ref="grid"
:easy="false"
:high="false"
:set="false"
:border="false"
:data="data1"
:height="gridHeight"
:page="false"
:size="size"
></DataGrid>
<div style="padding: 0;" class="excute">
<DataGrid style="margin-top:2px; margin-bottom: -5px;" :columns="columns" ref="grid" :easy="false" :high="false" :set="false" :border="false" :data="data1" :height="gridHeight" :page="false" :size="size"></DataGrid>
<Modal v-model="editModal" title="编辑" footer-hide width="800">
<Edit :row="rowData" @on-close="cancel" @on-option-ok="addOk" />
</Modal>
</div>
</div>
</template>
<script>
import Api from "../../aps/api";
import Edit from "./edit";
......@@ -29,7 +18,9 @@ export default {
Add
},
props: {
rowId: { type: Number }
rowId: {
type: Number
}
},
data() {
return {
......@@ -47,8 +38,10 @@ export default {
curId: 0,
gridHeight: 150,
size: "small",
columns: [
{ title: " ", width: 130 },
columns: [{
title: " ",
width: 130
},
{
key: "task_seq",
title: this.l("task_seq"),
......@@ -109,7 +102,14 @@ export default {
hide: true
},
{
key: "first_equip",
key: "equip_type",
title: this.l("equip_type"),
align: "left",
easy: true,
high: true
},
{
key: "firsT_EQUIP_CODE",
title: this.l("first_equip"),
align: "left",
easy: true,
......@@ -282,7 +282,9 @@ export default {
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
return h("div", {
class: "action"
}, [
h("op", {
attrs: {
icon: "md-create",
......@@ -290,7 +292,9 @@ export default {
title: "編輯工序",
oprate: "edit"
},
on: { click: () => this.edit(params.row) }
on: {
click: () => this.edit(params.row)
}
}),
h("op", {
attrs: {
......@@ -300,7 +304,9 @@ export default {
oprate: "delete",
msg: "确认要刪除工序吗?"
},
on: { click: () => this.remove(params.row, params.index) }
on: {
click: () => this.remove(params.row, params.index)
}
})
]);
}
......@@ -323,7 +329,10 @@ export default {
mounted() {
this.loadData(this.rowId);
},
async fetch({ store, params }) {
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
......@@ -385,6 +394,7 @@ export default {
}
};
</script>
<style lang="less">
.excute table tr th span,
.excute table tr td {
......
......@@ -13,7 +13,7 @@
</FormItem>
</Col>
<Col :span="12">
<FormItem label="首选资源" prop="resourceType">
<FormItem label="首选资源" prop="resource">
<ResourceSelectCode v-model="entity.resource" @on-change="resourceChange"></ResourceSelectCode>
</FormItem>
</Col>
......@@ -51,10 +51,11 @@ export default {
message: "必填",
trigger: "blur"
}],
resourceType: [{
resource: [{
required: true,
message: "请选择首选资源",
trigger: "change",
type: 'array'
}, ],
},
single: false
......@@ -69,10 +70,10 @@ export default {
}
},
methods: {
load(v) {
this.entity = v;
// load(v) {
// this.entity = v;
},
// },
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
......@@ -135,9 +136,9 @@ export default {
this.entity.resourceCode = v[1];
this.entity.resourceId = items[1].id;
if (v != null && v.length > 0) {
this.rules.resourceType[0].required = false;
this.rules.resource[0].required = false;
} else {
this.rules.resourceType[0].required = true;
this.rules.resource[0].required = true;
}
},
l(key) {
......@@ -160,7 +161,6 @@ export default {
this.entity.resourceCode = v.first_equip;
let code = v.first_equip;
this.entity.resource = []
//let code = 'PCZYBZBH_20200804_1'
if (code && code != '') {
this.resources.forEach(e => {
if (e.code == code) {
......
......@@ -211,8 +211,7 @@ export default {
title: this.l("equip_type"),
align: "left",
easy: true,
high: true,
hide: true
high: true
},
{
key: "first_equip",
......@@ -470,8 +469,8 @@ export default {
//编辑工序start----
edit(row) {
this.editModal = true;
this.rowData = row;
this.editModal = true;
},
//编辑工序end----
......
<template>
<div class="h100 table-content1">
<div class="h100 table-content1">
<p class="mb10">
订单编号:{{mesCodes}}
<span class="ml20">产品名称:{{productNames}}</span>
<span class="ml20">生产数量:{{counts}}</span>
订单编号:{{ mesCodes }}
<span class="ml20">产品名称:{{ productNames }}</span>
<span class="ml20">生产数量:{{ counts }}</span>
<span class="fr mr20" v-if="false">
<a href="javascript:;">出库单</a>
</span>
......@@ -12,58 +12,120 @@
</span>
</p>
<div class="mb70" v-for="(item,i) in datas" :key="i">
<p class="fwBold">{{item.routingHeader}}------{{item.routingHeaderCode}}</p>
<Table border :columns="cols" :data="item.suport" :ref="'table'+item.routingHeaderId" class="tableCommon" @on-selection-change="selectionChange(i)" @on-select-cancel="selectListCancel" @on-select-all-cancel="selectAllCancel" @on-select="selectList" @on-select-all="selectListAll">
<div class="mb70" v-for="(item, i) in datas" :key="i">
<p class="fwBold">
{{ item.routingHeader }}------{{ item.routingHeaderCode }}
</p>
<Table
border
:columns="cols"
:data="item.suport"
:ref="'table' + item.routingHeaderId"
class="tableCommon"
@on-selection-change="selectionChange(i)"
@on-select-cancel="selectListCancel"
@on-select-all-cancel="selectAllCancel"
@on-select="selectList"
@on-select-all="selectListAll"
>
<template slot-scope="{ row, index }" slot="counts">
<InputNumber :max="row.totalCount-row.applicationNumber" :min="0" v-model="row.count" @on-change="inputChange1(i,row,index)" :disabled="row._disabled" />
<InputNumber
:max="row.totalCount - row.applicationNumber"
:min="0"
v-model="row.count"
@on-change="inputChange1(i, row, index)"
:disabled="row._disabled"
/>
</template>
<template slot-scope="{ row, index }" slot="remarks">
<Input type="text" v-model="row.remark" @on-change="inputChange1(i,row,index)" :disabled="row._disabled" />
<Input
type="text"
v-model="row.remark"
@on-change="inputChange1(i, row, index)"
:disabled="row._disabled"
/>
</template>
</Table>
</div>
<FooterToolbar v-show="footerToolbar" class="ftball pt10">
<!--<div class="tip">已选{{selectItems.length}}项</div>-->
<Form :model="orderForm" :inline="true" :label-width="0" ref="formValidate" :rules="ruleValidate">
<Form
:model="orderForm"
:inline="true"
:label-width="0"
ref="formValidate"
:rules="ruleValidate"
>
<FormItem prop="QuotationFinishDate">
<DatePicker v-model="orderForm.QuotationFinishDate" type="date" style="color:black" placeholder="请选择齐套日期" @on-change="getTimeQuotationFD"></DatePicker>
<DatePicker
v-model="orderForm.QuotationFinishDate"
type="date"
style="color: black"
placeholder="请选择齐套日期"
@on-change="getTimeQuotationFD"
></DatePicker>
</FormItem>
<FormItem l><Button type="primary" class="mr10 ml10" @click="application">申请配套</Button></FormItem>
<FormItem l
><Button type="primary" class="mr10 ml10" @click="application"
>申请配套</Button
></FormItem
>
</Form>
</FooterToolbar>
<Modal v-model="modalAccessoryList" :title="title" fullscreen footer-hide>
<component :is="detailAcc" :eid="orderId" :mesCode="mesCodes" :productName="productNames" :drawnNumber="drawnNumber" :count="counts" @on-close="cancel" @on-ok="onOk" />
<component
:is="detailAcc"
:eid="orderId"
:mesCode="mesCodes"
:productName="productNames"
:drawnNumber="drawnNumber"
:count="counts"
@on-close="cancel"
@on-ok="onOk"
/>
</Modal>
<Modal v-model="modalAccSet" title="临时设置" footer-hide width="800">
<Form :model="entity" :label-width="110" ref="formValidateSet" :rules="ruleValidate">
<Form
:model="entity"
:label-width="110"
ref="formValidateSet"
:rules="ruleValidate"
>
<Row>
<Col span="12">
<FormItem label="工序">{{entity.routingDetailName}}</FormItem>
<FormItem label="工序">{{ entity.routingDetailName }}</FormItem>
</Col>
<Col span="12">
<FormItem label="物料名">{{entity.materialName}}</FormItem>
<FormItem label="物料名">{{ entity.materialName }}</FormItem>
</Col>
<Col span="12">
<FormItem label="物料编号">{{entity.materialNumber}}</FormItem>
<FormItem label="物料编号">{{ entity.materialNumber }}</FormItem>
</Col>
<Col span="12">
<FormItem label="需求数量">{{entity.needCount}}</FormItem>
<FormItem label="需求数量">{{ entity.needCount }}</FormItem>
</Col>
<Col span="12">
<FormItem label="已申请">{{entity.applicationNumber}}</FormItem>
<FormItem label="已申请">{{ entity.applicationNumber }}</FormItem>
</Col>
<Col span="12">
<FormItem label="可再申请" prop="count">
<InputNumber :max="entity.needCount-entity.applicationNumber" :min="0" v-model="entity.count" />
<InputNumber
:max="entity.needCount - entity.applicationNumber"
:min="0"
v-model="entity.count"
/>
</FormItem>
</Col>
<Col span="12">
<FormItem label="齐套日期" prop="finishDate">
<DatePicker v-model="entity.finishDate" type="date" placeholder="请选择齐套日期" @on-change="getTimeFinish"></DatePicker>
<DatePicker
v-model="entity.finishDate"
type="date"
placeholder="请选择齐套日期"
@on-change="getTimeFinish"
></DatePicker>
</FormItem>
</Col>
<Col span="24">
......@@ -73,14 +135,16 @@
</Col>
<Col span="24">
<p class="fr">
<Button type="primary" class="mr10 ml10" @click="application1">申请配套</Button>
<Button type="primary" class="mr10 ml10" @click="application1"
>申请配套</Button
>
<Button @click="canelSet">取消</Button>
</p>
</Col>
</Row>
</Form>
</Modal>
</div>
</div>
</template>
<script>
......@@ -98,7 +162,8 @@ export default {
curId: 0,
editIndex: -1,
editNum: "",
cols: [{
cols: [
{
type: "selection",
width: 70,
align: "center",
......@@ -148,7 +213,8 @@ export default {
width: "120",
render: (h, params) => {
return h(
"op", {
"op",
{
attrs: {
oprate: "detail",
},
......@@ -157,9 +223,9 @@ export default {
},
},
params.row._disabled &&
params.row.totalCount - params.row.applicationNumber > 0 ?
"临时申请" :
""
params.row.totalCount - params.row.applicationNumber > 0
? "临时申请"
: ""
);
},
},
......@@ -177,22 +243,28 @@ export default {
counts: this.count,
curArr: 0, //标记当前操作工艺规程列表是否为空
ruleValidate: {
QuotationFinishDate: [{
QuotationFinishDate: [
{
required: true,
message: "_",
trigger: "change",
}, ],
finishDate: [{
},
],
finishDate: [
{
required: true,
message: "请选择齐套日期",
trigger: "change",
}, ],
count: [{
},
],
count: [
{
required: true,
message: "请输入申请数量",
type: "number",
trigger: "change",
}, ],
},
],
},
tempList: [],
cRow: null,
......@@ -219,20 +291,18 @@ export default {
productName: String,
drawnNumber: String,
count: Number,
productingPreparationPeople: Number,
},
mounted() {
this.load(this.eid);
},
async fetch({
store,
params
}) {
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
load(v) {
Api.matchdetaillist({
id: v
id: v,
}).then((r) => {
if (r.success) {
r.result.forEach((e) => {
......@@ -367,6 +437,7 @@ export default {
creator: this.$store.state.userInfo.userName,
finishDate: this.orderForm.QuotationFinishDate,
orderCode: this.mesCode,
productingPreparationPeople: this.productingPreparationPeople,
},
items: temItems,
};
......
This diff is collapsed.
<template>
<div class="result-aps">
<div class="result-aps">
<Row class="expand-row">
<Col span="4">
<span class="expand-key">工序序号</span>
......@@ -20,7 +20,7 @@
<span class="expand-key">计划结束时间</span>
</Col>
<Col span="3">
<span class="expand-key">设备编号</span>
<span class="expand-key">首选资源</span>
</Col>
</Row>
<Row v-for="(item,index) in dataList" :key="item.index">
......@@ -46,8 +46,9 @@
<span>{{ item.equip_id }}</span>
</Col>
</Row>
</div>
</div>
</template>
<script>
import Api from "./api";
export default {
......@@ -76,18 +77,21 @@ export default {
}
};
</script>
<style lang='less'>
<style lang="less">
.result-aps {
.expand-row {
text-align: center;
margin: 5px 0;
font-weight: bold;
}
.expand-value {
text-align: center;
margin: 3px 0;
}
}
td.ivu-table-expanded-cell {
padding: 0 !important;
}
......
<template>
<div class="pdf-detail table-detail">
<div class="cerioficate-pdf-detail">
<div class="bian-hao">产品合格证编号:{{results.serialNumber}}</div>
<div class="bian-hao">产品合格证编号:{{ results.serialNumber }}</div>
<div class="body-d">
<Row class="row-border right-border">
<Col :span="4" class="col-border">用户单位</Col>
<Col :span="20" class="col-border">{{results.userUnit}}</Col>
<Col :span="20" class="col-border">{{ results.userUnit }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">任务依据</Col>
<Col :span="20" class="col-border">{{results.taskBased}}</Col>
<Col :span="20" class="col-border">{{ results.taskBased }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品名称</Col>
<Col :span="8" class="col-border">{{results.productName}}</Col>
<Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">{{results.productStatus}}</Col>
<Col :span="8" class="col-border">{{ results.productName }}</Col>
<!-- <Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">{{results.productStatus}}</Col> -->
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品编号</Col>
<Col :span="8" class="col-border">{{results.productSerialNumber}}</Col>
<Col :span="8" class="col-border">{{
results.productSerialNumber
}}</Col>
<Col :span="4" class="col-border">原材料批号</Col>
<Col :span="8" class="col-border">{{results.materialSerialNumber}}</Col>
<Col :span="8" class="col-border">{{
results.materialSerialNumber
}}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">原材料编号</Col>
<Col :span="8" class="col-border">{{results.materialCode}}</Col>
<Col :span="8" class="col-border">{{ results.materialCode }}</Col>
<Col :span="4" class="col-border">产品代号(图号)</Col>
<Col :span="8" class="col-border">{{results.productCode}}</Col>
<Col :span="8" class="col-border">{{ results.productCode }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">原材料合格证编号</Col>
<Col :span="8" class="col-border">{{results.materialCertificationNumber}}</Col>
<Col :span="8" class="col-border">{{
results.materialCertificationNumber
}}</Col>
<Col :span="4" class="col-border">数量</Col>
<Col :span="8" class="col-border">{{results.productQuantity}}</Col>
<Col :span="8" class="col-border">{{ results.productQuantity }}</Col>
</Row>
<!-- <Row class="row-border right-border">
<Col :span="4" class="col-border">增材制造批次号</Col>
......@@ -50,73 +56,84 @@
<Col :span="5" class="col-border">结论</Col>
<Col :span="5" class="col-border">备注</Col>
</Row>
<Row class="row-border right-border" v-for="(item,index) in results.items" :key="index">
<Col :span="1" class="col-border">{{index+1}}</Col>
<Col :span="5" class="col-border">{{item.name}}</Col>
<Col :span="5" class="col-border">{{item.require}}</Col>
<Col :span="3" class="col-border">{{item.result}}</Col>
<Col :span="5" class="col-border">{{item.conclusion}}</Col>
<Col :span="5" class="col-border">{{item.remark}}</Col>
<Row
class="row-border right-border"
v-for="(item, index) in results.items"
:key="index"
>
<Col :span="1" class="col-border">{{ index + 1 }}</Col>
<Col :span="5" class="col-border">{{ item.name }}</Col>
<Col :span="5" class="col-border">{{ item.require }}</Col>
<Col :span="3" class="col-border">{{ item.result }}</Col>
<Col :span="5" class="col-border">{{ item.conclusion }}</Col>
<Col :span="5" class="col-border">{{ item.remark }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">结论</Col>
<Col :span="20" class="col-border">{{results.conclusion}}</Col>
<Col :span="20" class="col-border">{{ results.conclusion }}</Col>
</Row>
<Row class="row-border right-border bottom-border">
<Col :span="4" class="col-border">检验员 / 时间</Col>
<Col :span="8" class="col-border">{{results.examUser}} {{results.examDate}}</Col>
<Col :span="8" class="col-border">
<User :value="parseInt(results.examUser)" />&nbsp;{{
results.examDate
}}</Col
>
<Col :span="4" class="col-border">批准人 / 时间</Col>
<Col :span="8" class="col-border">{{results.approveUser}} {{results.approveDate}}</Col>
<Col :span="8" class="col-border">
<User :value="parseInt(results.approveUser)" />&nbsp;
{{ results.approveDate }}</Col
>
</Row>
</div>
</div>
</div>
</template>
<script>
import Api from '../api'
import Api from "../api";
export default {
name: 'detail',
name: "detail",
components: {},
props: {
idVal: {
type: String,
default: ''
}
default: "",
},
},
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
await store.dispatch("loadDictionary"); // 加载数据字典
},
data() {
return {
results: {
state: ''
}
}
state: "",
},
};
},
created() {
this.dataImmut = []
this.dataMut = []
this.dataImmut = [];
this.dataMut = [];
Api.get({ Id: this.idVal }).then((r) => {
if (r.success) {
this.results = JSON.parse(r.result.formData)
this.results = JSON.parse(r.result.formData);
// let formStr = r.result.formData.replace(/\"/g, '"')
// this.results = JSON.parse(formStr)[0]
} else {
this.$Message.error('加载失败')
this.$Message.error("加载失败");
}
})
});
},
methods: {
load(v) {},
l(key) {
key = 'waitOpened' + '.' + key
return this.$t(key)
}
key = "waitOpened" + "." + key;
return this.$t(key);
},
watch: {}
}
},
watch: {},
};
</script>
<style lang="less" scoped>
.pdf-detail {
......
......@@ -69,36 +69,36 @@ export default {
{
key: "code",
title: this.l("code"),
align: "left",
align: "center",
easy: true,
high: true,
},
{ key: "total", title: this.l("total"), high: true },
{ key: "total", title: this.l("total"), high: true, align: "center" },
{
key: "nowTotal",
title: this.l("nowTotal"),
high: true,
},
{ key: "batch", title: this.l("batch"), align: "left", high: true },
{
key: "certificateOfApproval",
title: this.l("certificateOfApproval"),
align: "left",
align: "center",
high: true,
},
{
key: "unitPrice",
title: this.l("unitPrice"),
// { key: "batch", title: this.l("batch"), align: "left", high: true },
// {
// key: "certificateOfApproval",
// title: this.l("certificateOfApproval"),
// align: "left",
// high: true,
// },
// {
// key: "unitPrice",
// title: this.l("unitPrice"),
high: true,
},
{
key: "originalManufacturer",
title: this.l("originalManufacturer"),
align: "left",
high: true,
},
// high: true,
// },
// {
// key: "originalManufacturer",
// title: this.l("originalManufacturer"),
// align: "left",
// high: true,
// },
{
key: "creationTime",
title: this.l("creationTime"),
......@@ -108,7 +108,7 @@ export default {
{
key: "creator",
title: this.l("creatorUserId"),
align: "left",
align: "center",
high: true,
},
{
......
<template>
<div>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Form ref="form" :model="entity" :label-width="90">
<Row>
<Col :span="12">
<FormItem label="名称" prop="name">
<FormItem label="名称" prop="name" :rules="{required: true, message: '必填', trigger: 'blur'}">
<Input v-model="entity.name" placeholder="请输入"></Input>
</FormItem>
</Col>
......@@ -37,7 +37,9 @@
</div>
<Row>
<Col v-for="li in fileds" :key="li.field" :span="li.span">
<FormItem :label="li.title" :prop="li.name">
<!-- type: li.dataType==1?'number':li.dataType==4?'date':'string' -->
<!-- :rules="li.required?{required: true, message: '必填', trigger: 'blur', }:''" -->
<FormItem :label="li.title" :prop="li.field" >
<Input v-if="li.dataType==0" v-model="entity[li.field]"></Input>
<InputNumber
v-if="li.dataType==1||li.dataType==2"
......
This diff is collapsed.
......@@ -58,7 +58,12 @@
</Col>
</Row>
<Row>
<Col span="24">
<Col span="8">
<FormItem label="生产类型" style="width:100%" prop="productionType">
<dictionary style="width:240px" code="plan.order.productionType" v-model="orderSearchForm.productionType"></dictionary>
</FormItem>
</Col>
<Col span="16">
<FormItem label="任务要求" style="width:100%">
<Input v-model="orderSearchForm.taskRequire" placeholder />
</FormItem>
......
......@@ -67,6 +67,12 @@
</Col>
</Row>
<Row>
<Col span="8">
<span class="fwBold">{{l('productionType')}}</span>
<p>
<state code="plan.order.productionType" :value="entity.productionType" type="text"></state>
</p>
</Col>
<Col span="8">
<span class="fwBold">{{l('productingPreparationPeople')}}</span>
<p>
......@@ -79,10 +85,6 @@
<User v-model="entity.quotationPeople" v-if="entity.quotationPeople>0"></User>
</p>
</Col>
<Col span="8">
<span class="fwBold">&nbsp;</span>
<p>&nbsp;</p>
</Col>
</Row>
<Row class="lastRow">
<Col span="24">
......
......@@ -61,6 +61,11 @@
<dictionary style="width:240px" code="plan.order.urgencyLevel" v-model="orderSearchForm.urgencyLevel"></dictionary>
</FormItem>
</Col>
<Col span="8">
<FormItem :label="l('productionType')" style="width:100%" prop="productionType">
<dictionary style="width:240px" code="plan.order.productionType" v-model="orderSearchForm.productionType"></dictionary>
</FormItem>
</Col>
<Col span="24">
<FormItem :label="l('taskRequire')" style="width:100%">
<Input v-model="orderSearchForm.taskRequire" placeholder />
......
......@@ -179,6 +179,14 @@ export default {
code: "plan.order.taskType",
width: 100
},
{
key: "productionType",
title: this.l("productionType"),
align: "center",
high: true,
code: "plan.order.productionType",
width: 100
},
{
key: "quantity",
title: this.l("quantity"),
......
This diff is collapsed.
......@@ -105,7 +105,7 @@ export default {
type: "user",
},
{
key: "laster",
key: "lastModifierUserId",
title: this.l("laster"),
easy: true,
high: true,
......@@ -192,10 +192,6 @@ export default {
eid: Number,
},
mounted() {
// this.$refs.grid.reload(this.easySearch);
// if (this.eid) {
// this.loadList();
// }
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
......@@ -214,9 +210,8 @@ export default {
//格式化原始数据
formatFun(data) {
data.map((e) => {
if (e.laster) {
if (e.laster || e.creator) {
e.laster = parseInt(e.laster);
} else if (e.creator) {
e.creator = parseInt(e.creator);
}
});
......
import Api from '@/plugins/request'
export default {
index: `${PlanUrl}/orderexecutenew/paged_img`,
index: `${PlanUrl}/orderexecutenew/Paged_Img_RoutingDetail`,
paged(params) {
return Api.post(`${PlanUrl}/orderexecutenew/paged_img`, params);
return Api.post(`${PlanUrl}/orderexecutenew/Paged_Img_RoutingDetail`, params);
},
getCardList(params) {
return Api.post(`${PlanUrl}/orderexecutenew/list`, params);
......
......@@ -2,7 +2,7 @@
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem :label="l('title')" prop="title" style="width:95%">
<FormItem :label="l('title')" prop="title" style="width: 95%">
<Input v-model="entity.title"></Input>
</FormItem>
</Col>
......@@ -22,7 +22,13 @@
</Col>
<Col span="24">
<FormItem :label="l('content')" prop="content ">
<Input v-model="entity.content" type="textarea" :rows="5"></Input>
<i-quill
v-model="entity.content"
:height="300"
border
v-paste="handleImg"
/>
<!-- <Input v-model="entity.content" type="textarea" :rows="5"></Input> -->
</FormItem>
</Col>
</Row>
......@@ -34,8 +40,12 @@
</template>
<script>
import Api from "./api";
import iQuill from "@/components/quill";
export default {
name: "Add",
components: {
iQuill,
},
data() {
return {
entity: {
......@@ -76,6 +86,27 @@ export default {
}
},
methods: {
handleImg(e) {
console.warn(e);
let file = null;
if (
e.clipboardData &&
e.clipboardData.items[0] &&
e.clipboardData.items[0].type &&
e.clipboardData.items[0].type.indexOf("image") > -1
) {
//这里就是判断是否有粘贴进来的文件且文件为图片格式
file = e.clipboardData.items[0].getAsFile();
let reader = new FileReader();
reader.readAsDataURL(file);
setTimeout(() => {
var img = '<img src="' + reader.result + '" alt=""/>';
this.entity.content += img;
}, 1000);
// new R
}
},
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
......
......@@ -2,7 +2,7 @@
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem :label="l('title')" prop="title" style="width:95%">
<FormItem :label="l('title')" prop="title" style="width: 95%">
<Input v-model="entity.title"></Input>
</FormItem>
</Col>
......@@ -22,7 +22,13 @@
</Col>
<Col span="24">
<FormItem :label="l('content')" prop="content ">
<Input v-model="entity.content" type="textarea" :rows="5"></Input>
<i-quill
v-model="entity.content"
:height="300"
border
v-paste="handleImg"
/>
<!-- <Input v-model="entity.content" type="textarea" :rows="5"></Input> -->
</FormItem>
</Col>
</Row>
......@@ -34,8 +40,12 @@
</template>
<script>
import Api from "./api";
import iQuill from "@/components/quill";
export default {
name: "Edit",
components: {
iQuill,
},
data() {
return {
entity: {},
......@@ -90,6 +100,27 @@ export default {
}
});
},
handleImg(e) {
console.warn(e);
let file = null;
if (
e.clipboardData &&
e.clipboardData.items[0] &&
e.clipboardData.items[0].type &&
e.clipboardData.items[0].type.indexOf("image") > -1
) {
//这里就是判断是否有粘贴进来的文件且文件为图片格式
file = e.clipboardData.items[0].getAsFile();
let reader = new FileReader();
reader.readAsDataURL(file);
setTimeout(() => {
var img = '<img src="' + reader.result + '" alt=""/>';
this.entity.content += img;
}, 1000);
// new R
}
},
handleClose() {
this.$emit("on-close");
},
......
......@@ -13,7 +13,10 @@
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入关键字名称" v-model="easySearch.keys.value" />
<Input
placeholder="请输入关键字名称"
v-model="easySearch.keys.value"
/>
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
......@@ -23,20 +26,20 @@
<!-- <template slot="buttons">
<Button type="primary" @click="add">新增</Button>
</template>-->
<template slot="card" slot-scope="{row}">
<template slot="card" slot-scope="{ row }">
<div class="card_body">
<Row class="title_i">
<Col :span="21">工艺名称:{{row.title}}</Col>
<Col :span="21">工艺名称:{{ row.title }}</Col>
<Col :span="3" class="btn_click">
<!-- <a @click="edit(row.id)">
<Icon type="ios-create" @click="edit(row.id)" />
</a>-->
<!-- <a @click="view(row.id)">
<a @click="view(row.id)">
<Icon type="ios-paper" />
</a>
<a @click="remove(row.id)">
<!-- <a @click="remove(row.id)">
<Icon type="ios-trash" />
</a>-->
</a> -->
</Col>
</Row>
<div class="down_text">
......@@ -48,12 +51,16 @@
</div>
</Col>
<Col span="18">
<p>创建时间:{{row.creationTime}}</p>
<p>创建人:{{row.creator}}</p>
<p>内容:{{row.content}}</p>
<p>创建时间:{{ row.creationTime }}</p>
<p>创建人:{{ row.creator }}</p>
<p>内容:{{ row.content }}</p>
<p>
状态:
<state code="processCase.status" :value="row.status+''" type="text" />
<state
code="processCase.status"
:value="row.status + ''"
type="text"
/>
</p>
</Col>
</Row>
......@@ -78,12 +85,12 @@
</div>-->
</template>
</DataGrid>
<!-- <Modal v-model="modal" :title="title" width="800" footer-hide :mask-closable="false">
<Modal v-model="modal" :title="title" width="800" footer-hide :mask-closable="false">
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
<Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel" :mask-closable="false">
<!-- <Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel" :mask-closable="false">
<p>确定删除?</p>
</Modal>-->
</Modal> -->
</div>
</template>
<script>
......
......@@ -89,11 +89,12 @@
}
.img_box {
text-align: center;
margin: auto;
line-height: 350px;
font-size: 32px;
width: 750px;
height: 350px;
background: #ddd;
// background: #ddd;
margin: 10px 0 0 170px;
}
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -2,7 +2,7 @@
@import "../processDesign/Process/menu.less";
</style>
<template>
<div class="new_box">
<div class="new_box">
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="160" inline>
<!-- <Row>
<FormItem label="文件模板" prop="file_template">
......@@ -27,13 +27,7 @@
<Row>
<Col span="10">
<FormItem label="文档编号" prop="code">
<Input
size="large"
v-model.trim="formValidate.code"
placeholder="请输入..."
style="width:240px"
:disabled="codeisview"
/>
<Input size="large" v-model.trim="formValidate.code" placeholder="请输入..." style="width:240px" :disabled="codeisview" />
</FormItem>
</Col>
<Col span="10">
......@@ -49,11 +43,7 @@
<Table stripe ref="table" border :columns="column1" :data="formValidate1" class="tableCommon">
<template slot-scope="{ row,index }" slot="materialType">
<state
code="mes_xingchi_resource.material.materialReType"
type="text"
:value="row.material_type"
></state>
<state code="mes_xingchi_resource.material.materialReType" type="text" :value="row.material_type"></state>
</template>
</Table>
<Modal v-model="newModel" title="查看物料项" :mask-closable="false" width="830px">
......@@ -77,11 +67,7 @@
<Col :span="12">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
:disabled="true"
code="mes_xingchi_resource.material.materialReType"
v-model="formprocessValidate.material_type"
></Dictionary>
<Dictionary :disabled="true" code="mes_xingchi_resource.material.materialReType" v-model="formprocessValidate.material_type"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
......@@ -117,8 +103,9 @@
</Row>
</Form>
</Modal>
</div>
</div>
</template>
<script>
import service from "@/plugins/request";
......@@ -140,9 +127,11 @@ export default {
editindex: -1,
ruleValidate: {
materialPlanFinishDate: [
{ required: true, message: "配套完成时间不能为空", trigger: "blur" }
]
materialPlanFinishDate: [{
required: true,
message: "配套完成时间不能为空",
trigger: "blur"
}]
// name: [
// { required: true, message: '文件名称不能为空', trigger: 'blur' }
......@@ -226,8 +215,12 @@ export default {
procurementStandards: "",
qualityGrade: ""
},
column1: [
{ title: "序号", type: "index", width: "70", align: "center" },
column1: [{
title: "序号",
type: "index",
width: "70",
align: "center"
},
{
key: "materialNumber",
title: this.l("materialNumber"),
......@@ -329,14 +322,17 @@ export default {
let id = params.row.id;
return h(
"div",
{
"div", {
class: "icon_box"
},
[
h("op", {
class: "view ",
attrs: { icon: "ios-eye", title: "查看", type: "icon" },
attrs: {
icon: "ios-eye",
title: "查看",
type: "icon"
},
on: {
click: () => {
this.editFun(params);
......@@ -352,7 +348,7 @@ export default {
},
mounted() {},
created: function() {},
created: function () {},
methods: {
handleCreate1(val) {
this.EquipList.push({
......@@ -372,7 +368,7 @@ export default {
this.newModel = true;
},
loaddata(orderid) {
var url = `${designUrl}/ordermateriallist/getbyorderid?id=` + orderid;
var url = `${technologyUrl}ordermateriallist/getbyorderid?id=` + orderid;
service.get(`${url}`).then(response => {
this.formValidate = response.result.orderMaterial;
......@@ -394,7 +390,7 @@ export default {
orderMaterialList: this.formValidate1,
finishDate: this.formValidate.materialPlanFinishDate
};
let url = `${designUrl}/ordersupport/updateordermaterialactualquantity`;
let url = `${technologyUrl}/ordersupport/updateordermaterialactualquantity`;
service.put(`${url}`, parmes).then(res => {
if (res.success) {
this.$Message.success("操作成功");
......
<template>
<div class="aps-r">
<DataGrid :columns="columns" ref="grid" :batch="false" :type="typeInfo" :span="6" :lazy="true" :conditions="easySearch" :action="action" :gutter="40">
<div class="aps-r">
<DataGrid
:columns="columns"
ref="grid"
:batch="false"
:type="typeInfo"
:span="6"
:lazy="true"
:conditions="easySearch"
:action="action"
:gutter="40"
>
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入订单编号/产品名称/图号" v-model="easySearch.keys.value" v-width="260" clearable />
<Input
placeholder="请输入订单编号/产品名称/图号"
v-model="easySearch.keys.value"
v-width="260"
clearable
/>
</FormItem>
<!--
<FormItem>
......@@ -20,10 +35,31 @@
<Search />
</template>
<template slot="buttons">
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
<Button
:icon="iconInfo"
shape="circle"
:title="titleInfo"
@click="changeShwo"
></Button>
</template>
<template slot="card" slot-scope="{row}">
<div class="body" @click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status,row.mesCode,row.productName,row.drawnNumber)">
<template slot="card" slot-scope="{ row }">
<div
class="body"
@click="
toExecute(
row.id,
row.orderId,
row.executeId,
row.routingHeaderId,
row.routingDetailId,
row.quantity,
row.status,
row.mesCode,
row.productName,
row.drawnNumber
)
"
>
<Row class="title-i">
<Col :span="10" class="order-code">
<Ellipsis :text="row.productName" :lines="1" tooltip transfer />
......@@ -35,7 +71,13 @@
<div class="statuBg" :style="tdStyle(row.status)"></div>
<div class="boxTitle">
<div class="text">
<state code="taskList.status" ref="state" :value="row.status" type="text" :color="false"></state>
<state
code="taskList.status"
ref="state"
:value="row.status"
type="text"
:color="false"
></state>
</div>
</div>
</Col>
......@@ -44,8 +86,13 @@
<Row>
<Col span="8">
<div class="img-i">
<img :src="downUrl +row.productUrl" v-if="row.productUrl" />
<img src="@/assets/imgicon/chan_Pin.png" v-else width="100%" height="100%" />
<img :src="downUrl + row.productUrl" v-if="row.productUrl" />
<img
src="@/assets/imgicon/chan_Pin.png"
v-else
width="100%"
height="100%"
/>
</div>
<!-- <img
:src="getUrl(row.productUrl)"
......@@ -57,33 +104,73 @@
/>-->
</Col>
<Col span="16" class="row">
<p>{{l("beginTime")}}{{row.beginTime}}</p>
<p>{{ l("beginTime") }}{{ row.beginTime }}</p>
<p>
<span v-if="getStatus(row.status)">{{l("planEndTime")}}</span>
<span v-else>{{l("endTime")}}</span>
{{row.endTime}}
<span v-if="getStatus(row.status)"
>{{ l("planEndTime") }}</span
>
<span v-else>{{ l("endTime") }}</span>
{{ row.endTime }}
</p>
<p v-if="getStatus(row.status)&&getTimes(row.endTime)>0">
<p v-if="getStatus(row.status) && getTimes(row.endTime) > 0">
剩余时间:
<OutputTime :value="getTimes(row.endTime)" style="display:inline"></OutputTime>
<OutputTime
:value="getTimes(row.endTime)"
style="display: inline"
></OutputTime>
</p>
<p>{{l("quantity")}}{{row.quantity}}</p>
<Row>
<Col span="12">
<p>{{ l("quantity") }}{{ row.quantity }}</p></Col
>
<Col span="12"
><p>工序号:{{ row.taskSeq }}</p></Col
>
</Row>
<p>工序名称:{{ row.taskName }}</p>
</Col>
</Row>
<Row class="rowBottom">
<Col span="14">{{l("drawnNumber")}}{{row.drawnNumber}}</Col>
<Col span="14">{{ l("drawnNumber") }}{{ row.drawnNumber }}</Col>
<Col span="10" class="tr">
<Icon type="md-alert" size="18" color="#FFA000" v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0" />
<span style="color:#FFA000" v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0">预警</span>&nbsp;&nbsp;
<Icon type="md-timer" size="18" color="#FE7777" v-if="getStatus(row.status)&&compareTime(row.endTime)" />
<span style="color:#FE7777" v-if="getStatus(row.status)&&compareTime(row.endTime)">超期</span>
<Icon
type="md-alert"
size="18"
color="#FFA000"
v-if="
getStatus(row.status) &&
getTimes(row.endTime) < 86400 &&
getTimes(row.endTime) > 0
"
/>
<span
style="color: #ffa000"
v-if="
getStatus(row.status) &&
getTimes(row.endTime) < 86400 &&
getTimes(row.endTime) > 0
"
>预警</span
>&nbsp;&nbsp;
<Icon
type="md-timer"
size="18"
color="#FE7777"
v-if="getStatus(row.status) && compareTime(row.endTime)"
/>
<span
style="color: #fe7777"
v-if="getStatus(row.status) && compareTime(row.endTime)"
>超期</span
>
</Col>
</Row>
</div>
</div>
</template>
</DataGrid>
</div>
</div>
</template>
<script>
......@@ -104,11 +191,12 @@ export default {
},
DispatchStatus: {
op: "In",
value: [12, 14, 5, 7, -1]
}
value: [12, 14, 5, 7, -1],
},
},
downUrl: fileUrlDown,
columns: [{
columns: [
{
title: this.l("Id"),
key: "id",
width: 80,
......@@ -168,12 +256,14 @@ export default {
align: "center",
render: (h, params) => {
return h(
"div", {
"div",
{
class: "action",
},
[
h(
"op", {
"op",
{
attrs: {
oprate: "edit",
},
......@@ -210,10 +300,7 @@ export default {
let oldStr = localStorage.getItem("admin");
let userlist = this.$store.getters.getUser(2);
},
async fetch({
store,
params
}) {
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
......
......@@ -540,7 +540,7 @@ export default {
},
//新增保存或修改保存
save() {
this.cur.groupId = this.eid;
this.cur.projectId = this.eid;
if (this.cur.userId === undefined) {
this.$Message.error("请选择人员");
return;
......
......@@ -8,7 +8,7 @@
<Icon type="ios-arrow-forward" size="24" />
</a>
</div>
<Content class="content" :class="!showMenu?'con_bord':''" >
<Content class="content" :class="!showMenu?'con_bord':''">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :lazy="true">
<template slot="easySearch">
<Form ref="formInline" inline>
......@@ -175,6 +175,8 @@ export default {
return h('DateRange', {
props: {
value: params.row,
start: 'plansToStartDate',
end: 'plansToEndTime',
}
})
}
......
<template>
<div class="end-issued">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :high="false" :height="tdHeight"></DataGrid>
<Modal v-model="detailModal" title="查看合格证" @on-cancel="reload" footer-hide width="1000" :mask-closable="false">
<div class="end-issued">
<DataGrid
:columns="columns"
ref="grid"
:action="action"
:conditions="easySearch"
:high="false"
:height="tdHeight"
></DataGrid>
<Modal
v-model="detailModal"
title="查看合格证"
@on-cancel="reload"
footer-hide
width="1000"
:mask-closable="false"
>
<Detail @on-close="cancel" @on-ok="addOk" :eid="curId" ref="listDetail" />
</Modal>
</div>
</div>
</template>
<script>
......@@ -13,7 +27,7 @@ import Detail from "./detail";
export default {
name: "index",
components: {
Detail
Detail,
},
data() {
return {
......@@ -23,17 +37,20 @@ export default {
modalInfo: false,
tdHeight: "",
rules: {
approveUser: [{
approveUser: [
{
required: true,
message: "必填",
trigger: "blur"
}]
trigger: "blur",
},
],
},
columns: [{
columns: [
{
key: "id",
title: this.l("id"),
hide: true,
align: "left"
align: "left",
},
// {
// type: 'selection',
......@@ -45,28 +62,28 @@ export default {
title: this.l("mesCode"),
align: "left",
easy: true,
high: true
high: true,
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
high: true,
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
easy: true,
high: true
high: true,
},
{
key: "quantity",
title: this.l("quantity"),
align: "left",
easy: true,
high: true
high: true,
},
{
......@@ -74,14 +91,14 @@ export default {
title: this.l("qualifiedQuantity"),
align: "left",
easy: true,
high: true
high: true,
},
{
key: "uncertificateQuantity",
title: this.l("uncertificateQuantity"),
align: "left",
easy: true,
high: true
high: true,
},
{
key: "actualFinishDate",
......@@ -92,61 +109,66 @@ export default {
render: (h, params) => {
return h(
"span",
params.row.actualFinishDate == "0001-01-01 00:00:00" ?
"" :
params.row.actualFinishDate
params.row.actualFinishDate == "0001-01-01 00:00:00"
? ""
: params.row.actualFinishDate
);
}
},
},
{
key: "productingPreparationPeople",
title: this.l("productingPreparationPeople"),
align: "left",
easy: true,
high: true
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
},
// {
// key: "status",
// title: this.l("status"),
// align: "left",
// easy: true,
// high: true,
// code: "plan.order.status"
// },
{
title: "操作",
key: "action",
render: (h, params) => {
return h("div", {
class: "action"
}, [
return h(
"div",
{
class: "action",
},
[
h(
"op", {
"op",
{
attrs: {
oprate: "detail",
title: "查看合格证"
title: "查看合格证",
},
on: {
click: () => this.detail(params.row.id)
}
click: () => this.detail(params.row.id),
},
},
"查看合格证"
)
]);
}
}
),
]
);
},
},
],
easySearch: {
keys: {
op: "mesCode",
value: "",
default: true
default: true,
},
type: {
op: "Equal",
value: 2
}
}
value: 2,
},
},
};
},
mounted() {},
......@@ -177,8 +199,8 @@ export default {
l(key) {
let vkey = "waitOpened" + "." + key;
return this.$t(vkey) || key;
}
}
},
},
};
</script>
......
<template>
<div class="pdf-detail">
<div class="pdf-out">
<Button type="primary" @click="$u.outPdf('.cerioficate-pdf-detail','合格证')">导出</Button>
<Button
type="primary"
@click="$u.outPdf('.cerioficate-pdf-detail', '合格证')"
>导出</Button
>
</div>
<div class="cerioficate-pdf-detail">
<!-- <div class="pdf-img">
<img src="@/assets/images/log_pdf.png" alt="图片未加载" />
</div> -->
<div class="pdf-title">产品合格证</div>
<div class="bian-hao">产品合格证编号:{{results.serialNumber}}</div>
<div class="bian-hao">产品合格证编号:{{ results.serialNumber }}</div>
<div class="body-d body-table">
<Row class="row-border right-border">
<Col :span="4" class="col-border">用户单位</Col>
<Col :span="20" class="col-border">{{results.userUnit}}</Col>
<Col :span="20" class="col-border">{{ results.userUnit }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">任务依据</Col>
<Col :span="20" class="col-border">{{results.taskBased}}</Col>
<Col :span="20" class="col-border">{{ results.taskBased }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品名称</Col>
<Col :span="8" class="col-border">{{results.productName}}</Col>
<Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">{{results.productStatus}}</Col>
<Col :span="8" class="col-border">{{ results.productName }}</Col>
<!-- <Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">
<state code="plan.order.status" :value="results.productStatus"
/></Col> -->
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品编号</Col>
<Col :span="8" class="col-border">{{results.productSerialNumber}}</Col>
<Col :span="8" class="col-border">{{
results.productSerialNumber
}}</Col>
<Col :span="4" class="col-border">原材料批号</Col>
<Col :span="8" class="col-border">{{results.materialSerialNumber}}</Col>
<Col :span="8" class="col-border">{{
results.materialSerialNumber
}}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">原材料编号</Col>
<Col :span="8" class="col-border">{{results.materialCode}}</Col>
<Col :span="8" class="col-border">{{ results.materialCode }}</Col>
<Col :span="4" class="col-border">产品代号(图号)</Col>
<Col :span="8" class="col-border">{{results.productCode}}</Col>
<Col :span="8" class="col-border">{{ results.productCode }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">原材料合格证编号</Col>
<Col :span="8" class="col-border">{{results.materialCertificationNumber}}</Col>
<Col :span="8" class="col-border">{{
results.materialCertificationNumber
}}</Col>
<Col :span="4" class="col-border">数量</Col>
<Col :span="8" class="col-border">{{results.productQuantity}}</Col>
<Col :span="8" class="col-border">{{ results.productQuantity }}</Col>
</Row>
<!-- <Row class="row-border right-border">
<Col :span="4" class="col-border">增材制造批次号</Col>
......@@ -57,66 +69,82 @@
<Col :span="5" class="col-border">结论</Col>
<Col :span="5" class="col-border">备注</Col>
</Row>
<Row class="row-border right-border" v-for="(item,index) in results.items" :key="index">
<Col :span="1" class="col-border">{{index+1}}</Col>
<Col :span="5" class="col-border">{{item.name}}</Col>
<Col :span="5" class="col-border">{{item.require}}</Col>
<Col :span="3" class="col-border">{{item.result}}</Col>
<Col :span="5" class="col-border">{{item.conclusion}}</Col>
<Col :span="5" class="col-border">{{item.remark}}</Col>
<Row
class="row-border right-border"
v-for="(item, index) in results.items"
:key="index"
>
<Col :span="1" class="col-border">{{ index + 1 }}</Col>
<Col :span="5" class="col-border">{{ item.name }}</Col>
<Col :span="5" class="col-border">{{ item.require }}</Col>
<Col :span="3" class="col-border">{{ item.result }}</Col>
<Col :span="5" class="col-border">{{ item.conclusion }}</Col>
<Col :span="5" class="col-border">{{ item.remark }}</Col>
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">结论</Col>
<Col :span="20" class="col-border">{{results.conclusion}}</Col>
<Col :span="20" class="col-border">{{ results.conclusion }}</Col>
</Row>
<Row class="row-border right-border bottom-border">
<Col :span="4" class="col-border">检验员 / 时间</Col>
<Col :span="8" class="col-border">{{results.examUser}} {{results.examDate}}</Col>
<Col :span="8" class="col-border">
<User :value="parseInt(results.examUser)" />&nbsp;
{{ results.examDate }}</Col
>
<Col :span="4" class="col-border">批准人 / 时间</Col>
<Col :span="8" class="col-border">{{results.approveUser}} {{results.approveDate}}</Col>
<Col :span="8" class="col-border"
><User :value="parseInt(results.approveUser)" />&nbsp;
{{ results.approveDate }}</Col
>
</Row>
</div>
<div style="margin-top:20px;">本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)</div>
<Row style="margin-top:5px;">
<div style="margin-top: 20px">
本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)
</div>
<Row style="margin-top: 5px">
<Col :span="10">地址:</Col>
<Col :span="8" >电话:</Col>
<Col :span="6" >邮编:</Col>
<Col :span="8">电话:</Col>
<Col :span="6">邮编:</Col>
</Row>
</div>
</div>
</template>
<script>
import Api from '../../certificate/api'
import Api from "../../certificate/api";
export default {
name: '',
name: "",
props: {
eid: Number
eid: Number,
},
data() {
return {
results: []
}
results: [],
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
created() {
// this.loadss()
},
methods: {
load(v) {
Api.getCertificate({ id: v }).then((r) => {
this.results = r.result
console.log(r.result)
})
}
this.results = r.result;
console.log(r.result);
});
},
},
watch: {
eid(v) {
if (v != null) {
this.load(v)
this.load(v);
}
}
}
}
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -14,8 +14,10 @@
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品名称</Col>
<Col :span="8" class="col-border">{{ results.productName }}</Col>
<Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">{{ results.productStatus }}</Col>
<!-- <Col :span="4" class="col-border">产品状态</Col>
<Col :span="8" class="col-border">
<state code="plan.order.status" :value="results.productStatus"
/></Col> -->
</Row>
<Row class="row-border right-border">
<Col :span="4" class="col-border">产品编号</Col>
......@@ -75,11 +77,13 @@
<Row class="row-border right-border bottom-border">
<Col :span="4" class="col-border">检验员 / 时间</Col>
<Col :span="8" class="col-border"
>{{ results.examUser }} {{ results.examDate }}</Col
><User :value="parseInt(results.examUser)" />&nbsp;
{{ results.examDate }}</Col
>
<Col :span="4" class="col-border">批准人 / 时间</Col>
<Col :span="8" class="col-border"
>{{ results.approveUser }} {{ results.approveDate }}</Col
><User :value="parseInt(results.approveUser)" />&nbsp;
{{ results.approveDate }}</Col
>
</Row>
</div>
......@@ -105,6 +109,10 @@ export default {
data() {
return {};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
l(key) {
key = "waitOpened" + "." + key;
......
......@@ -35,7 +35,7 @@
/>
</FormItem>
</Col>
<Col :span="6">
<!-- <Col :span="6">
<FormItem :label="l('productStatus')" prop="productStatus">
<Dictionary
disabled
......@@ -46,7 +46,7 @@
:key="entity.productStatus"
></Dictionary>
</FormItem>
</Col>
</Col> -->
<Col :span="6">
<FormItem :label="l('materialCode')" prop="materialCode">
<Input v-model="entity.materialCode"></Input>
......@@ -154,7 +154,7 @@
</Col>
<Col :span="6">
<FormItem :label="l('examUser')" prop="examUser">
<UserSelect ref="examUser" v-model="entity.examUser" />
<UserSelect ref="examUser" v-model="entity.examUser" :roleTitle='roleTitle'/>
</FormItem>
</Col>
<!-- <Col :span="6">
......@@ -196,6 +196,7 @@ export default {
data() {
return {
isId: "",
roleTitle:"检验",
examineModal: false,
submit: true,
isDisabled: false,
......@@ -213,6 +214,7 @@ export default {
id: 0,
status: 0,
items: [],
userUnit:''
},
rules: {
// userUnit: [{ required: true, message: "必填", trigger: "change" }],
......
......@@ -94,14 +94,14 @@ export default {
easy: true,
high: true
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
},
// {
// key: "status",
// title: this.l("status"),
// align: "left",
// easy: true,
// high: true,
// code: "plan.order.status"
// },
{
title: "操作",
key: "action",
......
import Api from '@/plugins/request'
export default {
index:`${resourceUrl}/materialpowder/itempaged`,
index:`${material}/material/paged`,
paged(params){
return Api.post(`${resourceUrl}/materialpowder/itempaged`,params);
return Api.post(`${material}/material/paged`,params);
},
get(params){
return Api.get(`${resourceUrl}/materialpowder/get`,params);
return Api.get(`${material}/materialpowder/get`,params);
},
create(params){
return Api.post(`${resourceUrl}/materialpowder/create`,params);
return Api.post(`${material}/materialpowder/create`,params);
},
update(params){
return Api.post(`${resourceUrl}/materialpowder/update`,params);
return Api.post(`${material}/materialpowder/update`,params);
},
//删除:
delete(params) {
return Api.delete(`${resourceUrl}/materialpowder/delete`,{params:params});
return Api.delete(`${material}/materialpowder/delete`,{params:params});
},
}
\ No newline at end of file
<template>
<div>
<DataGrid :columns="columns" ref="grid" :high='false' :action="action" :conditions="easySearch"></DataGrid>
<DataGrid
:columns="columns"
ref="grid"
:high="false"
:action="action"
:conditions="easySearch"
></DataGrid>
</div>
</template>
<script>
import Api from '../api'
import Api from "../api";
export default {
// name: 'list',
// components:{
......@@ -18,145 +24,157 @@ export default {
detailModal: false,
deletelModal: false,
easySearch: {
keys: { op: 'brand,name', value: '',default:true },
reinspectionStatus: { op: 'Equal', value: 3 }
keys: { op: "brand,name", value: "", default: true },
reinspectionStatus: { op: "Equal", value: 1 },
},
curId: 0,
columns: [
{ key: 'id', title: this.l('id'), hide: true, align: 'left' },
{
key: 'brand',
title: this.l('brand'),
align: 'left',
easy: true,
high: true
},
{ key: "id", title: this.l("id"), hide: true, align: "left" },
{
key: 'name',
title: this.l('name'),
align: 'left',
easy: true,
high: true
},
key: "codeRuleType",
title: "类型",
align: "center",
code: "material.code.type",
import: true,
hide: true,
},
// {
// key: "codeRuleId",
// title: "编码名称",
// materialKey: "3",
// import: true,
// hide: true,
// render: (h, params) => {
// return h("span", {}, this.getType3(params.row.codeRuleId));
// },
// },
// {
// key: "rootCategoryId",
// title: "大类",
// align: "right",
// materialKey: "1",
// import: true,
// hide: true,
// render: (h, params) => {
// return h("span", {}, this.getType1(params.row.rootCategoryId));
// },
// },
// {
// key: "categoryId",
// title: "子类",
// align: "right",
// materialKey: "2",
// import: true,
// hide: true,
// render: (h, params) => {
// return h("span", {}, this.getType2(params.row.categoryId));
// },
// },
{
key: 'specifications',
title: this.l('specifications'),
align: 'left',
easy: true,
high: true
},
key: "code",
title: "编码",
align: "left",
render: (h, params) => {
return h(
"div",
{
key: 'batchNo',
title: this.l('batchNo'),
align: 'left',
easy: true,
high: true,
hide:true,
props: {},
on: {
click: () => this.details(params.row),
},
{
key: 'originalManufacturer',
title: this.l('originalManufacturer'),
align: 'left',
easy: true,
high: true,
hide:true,
},
{
key: 'reinspectionDate',
title: this.l('reinspectionDate'),
align: 'left',
render: (h, paras) => {
return h('span', paras.row.reinspectionDate)
!params.row.code || params.row.code == 0
? "未分配"
: params.row.code
);
},
high: true,
width:180,
},
{
key: 'remainingAmount',
title: this.l('remainingAmount'),
align: 'left',
high: true
key: "name",
title: "名称",
align: "left",
},
{
key: 'storeId',
title: this.l('storeId'),
align: 'left',
render: (h, paras) => {
return h('span', paras.row.storeId)
key: "status",
title: "状态",
align: "center",
code: "material.main.status",
},
high: true
{
key: "version",
title: "版本",
align: "left",
code: "material.main.version",
},
{
key: 'location',
title: this.l('location'),
align: 'left',
easy: true,
high: true
key: "drawing",
title: "图号",
align: "left",
},
{
key: 'category',
title: this.l('category'),
align: 'center',
high: true,
code: 'mes_xingchi_resource.material.powderType'
key: "creationTime",
title: "创建时间",
hide: true,
align: "left",
type: "date",
},
{
key: 'reinspectionStatus',
title: this.l('reinspectionStatus'),
align: 'center',
code: 'mes_xingchi_resource.material.recheckState',
easy: true,
high: true
key: "creatorUserId",
title: "创建人",
hide: true,
align: "left",
type: "user",
},
// render:(h,paras)=>{return h('span',paras.row.reinspectionStatus)} ,
{
title: '操作',
key: 'id',
title: "操作",
key: "id",
width: 150,
align: 'center',
align: "center",
render: (h, params) => {
// let herfurl = params.row.certificateUploadPath;
return h('div', { class: 'action' }, [
return h("div", { class: "action" }, [
h(
'op',
"op",
{
attrs:{
oprate:'detail'
} ,
class: 'view',
on: { click: () => {
this.detail(params.row)
} }
attrs: {
oprate: "detail",
},
class: "view",
on: {
click: () => {
this.detail(params.row);
},
},
'查看复验单'
)
])
}
}
]
}
},
mounted() {
"查看复验单"
),
]);
},
},
],
};
},
mounted() {},
methods: {
reload(){
this.$refs.grid.load()
reload() {
this.$refs.grid.load();
},
detail(row) {
let ssdata = row.certificateUploadPath
if(this.$u.isNull(ssdata)){
this.$Message.warning('复验单为空!')
}else{
var item=JSON.parse(ssdata)[0]["filePath"],
let ssdata = row.certificateUploadPath;
if (this.$u.isNull(ssdata)) {
this.$Message.warning("复验单为空!");
} else {
var item = JSON.parse(ssdata)[0]["filePath"],
url = fileUrlDown + item;
window.open(url)
window.open(url);
// this.$Message.warning('文件格式不支持')
}
},
removeCancel() {
this.deletelModal = false
this.deletelModal = false;
},
l(key) {
/*
......@@ -186,11 +204,11 @@ export default {
lastModifierUserId:'',
}
*/
let vkey = 'waitReview' + '.' + key
return this.$t(vkey) || key
}
}
}
let vkey = "waitReview" + "." + key;
return this.$t(vkey) || key;
},
},
};
</script>
<style lang="less">
</style>
\ No newline at end of file
This diff is collapsed.
<template>
<div class="resources-p h100">
<DataGrid
:columns="columns"
ref="grid"
:action="action"
:high="false"
@on-selection-change="onSelect"
>
<div class="resources-p h100">
<DataGrid :columns="columns" ref="grid" :action="action" :high="false" @on-selection-change="onSelect">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
......@@ -43,15 +37,16 @@
</template>
</DataGrid>
<Modal v-model="editModal" title="设置日历" footer-hide>
<Modal v-model="editModal" title="设置日历" footer-hide width="1000">
<Set :eid="curId" @on-close="cancel" @on-ok="addOk" />
</Modal>
<Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel">
<p>确定删除?</p>
</Modal>
</div>
</div>
</template>
<script>
import Api from "./api";
......@@ -66,7 +61,10 @@ export default {
return {
action: Api.index,
easySearch: {
keys: { op: "title,code,type,departTitle", value: null },
keys: {
op: "title,code,type,departTitle",
value: null
},
},
entity: {
isimportant: "1",
......@@ -77,11 +75,23 @@ export default {
deletelModal: false,
curId: 0,
rules: {
isimportant: [{ required: true, message: "必填", trigger: "blur" }],
capabilityValue: [{ required: true, message: "必填", trigger: "blur" }],
isimportant: [{
required: true,
message: "必填",
trigger: "blur"
}],
capabilityValue: [{
required: true,
message: "必填",
trigger: "blur"
}],
},
columns: [{
key: "id",
title: this.l("id"),
hide: true,
align: "left"
},
columns: [
{ key: "id", title: this.l("id"), hide: true, align: "left" },
{
type: "selection",
width: 70,
......@@ -185,20 +195,29 @@ export default {
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
return h("div", {
class: "action"
}, [
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.edit(params.row.id) },
"op", {
attrs: {
oprate: "edit"
},
on: {
click: () => this.edit(params.row.id)
},
},
"设置"
),
h(
"op",
{
attrs: { oprate: "remove", title: "删除" },
on: { click: () => this.remove(params.row.id) },
"op", {
attrs: {
oprate: "remove",
title: "删除"
},
on: {
click: () => this.remove(params.row.id)
},
},
"删除"
),
......@@ -211,7 +230,10 @@ export default {
mounted() {
console.log(this);
},
async fetch({ store, params }) {
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
......@@ -234,7 +256,9 @@ export default {
this.curId = id;
},
removeOk() {
Api.delete({ id: this.curId }).then((r) => {
Api.delete({
id: this.curId
}).then((r) => {
if (r.success) {
this.$refs.grid.load();
this.deletelModal = false;
......@@ -300,20 +324,25 @@ export default {
},
};
</script>
<style lang="less">
@import "../../../assets/css/custom.less";
.resources-p {
.form-row {
width: 600px;
margin-left: 50px;
.ivu-form-item-label {
color: @form-color;
}
}
.ivu-footer-toolbar-right {
width: 1100px;
position: relative !important;
}
.btn {
position: absolute !important;
top: 12px !important;
......
<template>
<Form ref="form" :model="formItem" :rules="rules" :label-width="90">
<Form ref="form" :model="formItem" :rules="rules" :label-width="110">
<Row>
<Col span="12">
<FormItem label="资源名称" prop="equip_name">
......@@ -13,19 +13,15 @@
</Col>
<Col :span="12">
<FormItem label="工作日历" prop="work">
<Select v-model="formItem1.calendarwork_pk" clearable placeholder="请选择...">
<Select v-model="formItem1.calendarwork_pk" filterable clearable placeholder="请选择...">
<Option v-for="item in workList" :value="item.id" :key="item.calName">{{ item.calName }}</Option>
</Select>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="加班日历" prop="overtime">
<Select v-model="formItem2.calendarovertime_pk" clearable placeholder="请选择...">
<Option
v-for="item in overtimeList"
:value="item.id"
:key="item.holidayCalName"
>{{ item.holidayCalName }}</Option>
<Select v-model="formItem2.calendarovertime_pk" filterable clearable placeholder="请选择...">
<Option v-for="item in overtimeList" :value="item.id" :key="item.holidayCalName">{{ item.holidayCalName }}</Option>
</Select>
</FormItem>
</Col>
......@@ -48,8 +44,9 @@
<Button type="primary" @click="handleSubmit" v-noClick>保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</Form>
</template>
<script>
import Api from "./api";
export default {
......@@ -76,7 +73,11 @@ export default {
},
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
name: [{
required: true,
message: "必填",
trigger: "blur"
}],
},
};
},
......@@ -109,7 +110,9 @@ export default {
});
},
load(v) {
Api.get({ id: v }).then((r) => {
Api.get({
id: v
}).then((r) => {
this.formItem.equip_name = r.result.title;
this.formItem.equip_id = r.result.code;
this.formItem.capabilityValue = r.result.capabilityValue;
......
<template>
<div>
<div class="mb10 pt5">
<Input v-model="searchValue" placeholder="请输入库位名称" clearable style="width: 240px" />
<Input
v-model="searchValue"
placeholder="请输入库位名称"
clearable
style="width: 240px"
/>
<Button type="primary" class @click="handleSearch">查询</Button>
<div class="fr">
<Button type="primary" @click="add()">新增库位</Button>
......@@ -75,9 +80,15 @@ export default {
},
{
key: "materialTypeName",
title: "物料编号",
title: "物料类型",
align: "left",
},
// {
// key: "materialType",
// title: "物料类别",
// align: "left",
// code: "material.main.type",
// },
{
key: "userName",
title: this.l("userName"),
......
......@@ -249,17 +249,6 @@ export default {
} else {
this.entity.fileId = "";
}
ApiWorkflow.getbyid({
id: "2085025d-9c38-4834-846a-8f9d2f4c8553",
})
.then((res) => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.entity.approvalStatus = 4;
} else {
this.entity.approvalStatus = 1;
}
Api.create(this.entity)
.then((r) => {
if (r.success) {
......@@ -286,12 +275,6 @@ export default {
console.warn(err);
});
}
})
.catch((err) => {
this.$Message.error("操作失败");
console.warn(err);
});
}
}
});
},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<div class="detail">
<div class="detail">
<Row>
<Filed :span="12" :name="l('title')">{{entity.title}}</Filed>
<Filed :span="12" :name="l('status')"><state code="processCase.status" :value="entity.status+''" type="text" /></Filed>
<Filed :span="12" :name="l('status')">
<state code="processCase.status" :value="entity.status+''" type="text" />
</Filed>
<Filed :span="12" :name="l('creator')">{{entity.creator}}</Filed>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="24" :name="l('content')">{{entity.content}}</Filed>
<Filed :span="24" :name="l('content')">
<div v-html="entity.content" class="tohtml"></div>
</Filed>
<Filed :span="24" :name="l('filePath')">
<files ref="refFile" :parms="parms" unClosable style="display:inline" /></Filed>
<files ref="refFile" :parms="parms" unClosable style="display:inline" />
</Filed>
</Filed>
</Row>
</div>
</div>
</template>
<script>
import Api from "./api";
export default {
......@@ -20,8 +26,16 @@ export default {
return {
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }],
name: [{
required: true,
message: "必填",
trigger: "blur"
}],
code: [{
required: true,
message: "必填",
trigger: "blur"
}],
},
parms: {
app: "technology",
......@@ -44,7 +58,9 @@ export default {
window.open(data, "_blank");
},
load(v) {
Api.get({ id: v }).then((r) => {
Api.get({
id: v
}).then((r) => {
this.entity = r.result;
this.parms.eid = r.result.filePaths;
this.$emit("on-load");
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment