Commit 3b409d56 authored by 周远喜's avatar 周远喜

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

parents 19bafb12 54059f9d
......@@ -11,7 +11,7 @@
:show-upload-list="false"
:on-exceeded-size="onExceededSize"
:on-format-error="onFormatError"
multiple
:multiple="multiple"
:style="style"
:on-progress="onProgress"
>
......@@ -21,7 +21,7 @@
</div>
<Button icon="ios-cloud-upload-outline" v-if="!cloudIco">上传文件</Button>
</Upload>
<Progress :percent="per" :stroke-width="5" v-show="vshowPro"/>
<Progress :percent="per" :stroke-width="5" v-show="vshowPro" />
<Tag
v-for="(item,index) in nameList"
:key="index"
......@@ -30,29 +30,30 @@
@on-close="handleClose2"
checkable
>
<a :href="fileUrlPath" @click="downFile(item.filePath)" target="_blank">{{item.fileName}}</a>
<a :href="fileUrlPath" @click="downFile(item.filePath)" target="_blank">{{item.fileName}}</a>
</Tag>
</div>
</template>
<script>
export default {
name: 'files',
name: "files",
model: {
prop: 'value'
prop: "value"
},
data() {
return {
file: null,
downUrl: fileUrlDown,
fileUrlPath: '',
fileUrlPath: "",
nameList: [],
hbaseFileListNew: [],
formatList: ['png', 'jpg', 'gif'],
postUrl: '',
style: '',
formatList: ["png", "jpg", "gif"],
multiple: true,
postUrl: "",
style: "",
per: 0,
vshowPro: false
}
};
},
created() {},
props: {
......@@ -61,13 +62,17 @@ export default {
type: Boolean,
default: false
},
singleFile: {//上传单文件
type: Boolean,
default: false
},
maxSize: {
type: Number,
default: 10240
},
parms: {
type: [String, Object],
default: ''
default: ""
},
unClosable: {
type: Boolean,
......@@ -80,140 +85,177 @@ export default {
},
methods: {
onProgress(event, file, fileList) {
this.per = 0
this.vshowPro = true
this.per = 0;
this.vshowPro = true;
},
// change(event) {
// this.$emit('on-change', event)
// },
//上传成功文件
uploadSuccess(response, file, fileList) {
this.per = 60
this.vshowPro = true
const hbaseFileList = []
const filesList = []
this.per = 60;
this.vshowPro = true;
const hbaseFileList = [];
const filesList = [];
if (this.singleFile) {
this.nameList = [];
}
if (file.response.status == 0) {
let objImag = {}
objImag.fileName = file.response.data.fileName
objImag.filePath = file.response.data.downloadPath
objImag.id = file.response.data.id
filesList.push(objImag)
this.nameList = this.nameList.concat(filesList)
this.per = 100
let objImag = {};
objImag.fileName = file.response.data.fileName;
objImag.filePath = file.response.data.downloadPath;
objImag.id = file.response.data.id;
filesList.push(objImag);
this.nameList = this.nameList.concat(filesList);
this.per = 100;
setTimeout(() => {
this.per = 0
this.vshowPro = false
}, 2000)
this.per = 0;
this.vshowPro = false;
}, 2000);
} else {
this.$Message.error('上传失败,请重新上传!')
this.$Message.error("上传失败,请重新上传!");
}
},
//上传文件失败
uploadError(response, file, fileList) {
this.$Message.error('上传失败,请重新上传!')
this.$Message.error("上传失败,请重新上传!");
},
//文件大小验证返回
onExceededSize(file, fileList) {
if (Object.keys(file).length == 0) {
this.$Message.error(
'上传文件不能大于' + this.maxSize + 'k,请重新上传!'
)
"上传文件不能大于" + this.maxSize + "k,请重新上传!"
);
}
},
//文件格式验证
onFormatError(file, fileList) {
if (Object.keys(file).length == 0) {
this.$Message.error('上传文件格式不正确,请重新上传!')
this.$Message.error("上传文件格式不正确,请重新上传!");
}
},
//删除上传
removeFile(file, fileList) {},
handleClose2(event, name) {
//删除上传到文件服务器上的文件
this.$http.sysUser.deleteFile(name).then((res) => {
this.$http.sysUser.deleteFile(name).then(res => {
if (res.status == 0) {
const index = this.nameList.findIndex(function(item) {
return item.id === name
})
this.nameList.splice(index, 1)
return item.id === name;
});
this.nameList.splice(index, 1);
} else {
this.$Message.error('删除失败!')
this.$Message.error("删除失败!");
}
})
});
},
downFile(path) {
this.fileUrlPath = this.downUrl + path
this.fileUrlPath = this.downUrl + path;
},
formatL() {
if (this.files) {
this.formatList = [
'pdf',
'docx',
'doc',
'xls',
'xlsx',
'txt',
'png',
'jpg',
'gif'
]
"pdf",
"docx",
"doc",
"xls",
"xlsx",
"txt",
"png",
"jpg",
"gif"
];
}
return this.formatList;
},
mutipleStatu() {
if (this.singleFile) {
this.multiple = false;
} else {
this.multiple = true;
}
return this.formatList
},
//修改时使用
intFiles() {
this.postUrl =
fileUrl +
'/upload/?token=Bearer ' +
window.sessionStorage.getItem('token') +
'&' +
this.convertObj(this.parms)
"/upload/?token=Bearer " +
window.sessionStorage.getItem("token") +
"&" +
this.convertObj(this.parms);
//是否显示上传按钮
if (this.unClosable) {
this.style = "display:none;";
} else {
this.style = "";
}
this.nameList = [];
//查询上传到文件服务器上的文件
this.$http.sysUser.getFile(this.parms).then(res => {
if (res.data != [] && res.data.length > 0) {
res.data.forEach(data => {
let objImag = {};
objImag.fileName = data.fileName;
objImag.filePath = data.downloadPath;
objImag.id = data.id;
this.nameList.push(objImag);
});
}
});
},
//克隆后修改时使用
intFilesClone() {
this.postUrl =
fileUrl +
"/upload/?token=Bearer " +
window.sessionStorage.getItem("token") +
"&" +
this.convertObj(this.parms);
//是否显示上传按钮
if (this.unClosable) {
this.style = 'display:none;'
this.style = "display:none;";
} else {
this.style = ''
this.style = "";
}
this.nameList = []
this.nameList = [];
//查询上传到文件服务器上的文件
this.$http.sysUser.getFile(this.parms).then((res) => {
this.$http.sysUser.getFile(this.parms).then(res => {
if (res.data != [] && res.data.length > 0) {
res.data.forEach((data) => {
let objImag = {}
objImag.fileName = data.fileName
objImag.filePath = data.downloadPath
objImag.id = data.id
this.nameList.push(objImag)
})
res.data.forEach(data => {
let objImag = {};
objImag.fileName = data.fileName;
objImag.filePath = data.downloadPath;
objImag.id = data.id;
this.nameList.push(objImag);
});
}
})
});
},
//新增时重新定义posturl使用
intFiles1() {
this.postUrl =
fileUrl +
'/upload/?token=Bearer ' +
window.sessionStorage.getItem('token') +
'&' +
this.convertObj(this.parms)
"/upload/?token=Bearer " +
window.sessionStorage.getItem("token") +
"&" +
this.convertObj(this.parms);
},
//obj转为url
convertObj(data) {
if (data.eid != null) {
var _result = []
var _result = [];
for (var key in data) {
var value = data[key]
var value = data[key];
if (value.constructor == Array) {
value.forEach(function(_value) {
_result.push(key + '=' + _value)
})
_result.push(key + "=" + _value);
});
} else {
_result.push(key + '=' + value)
_result.push(key + "=" + value);
}
}
return _result.join('&')
} else return ''
return _result.join("&");
} else return "";
}
},
computed: {},
......@@ -224,10 +266,11 @@ export default {
// }
},
mounted() {
this.formatL()
this.formatL();
this.mutipleStatu();
// this.intFiles()
}
}
};
</script>
<style lang="less">
</style>
\ No newline at end of file
......@@ -1289,32 +1289,6 @@ export default {
stepContent: '工步内容',
extend: '扩展字段',
},
routing_qc_card: {
id: '',
creationTime: '创建时间',
creatorUserId: '创建人',
lastModificationTime: '修改时间',
lastModifierUserId: '修改人',
isDeleted: '是否删除',
deleterUserId: '删除人',
deletionTime: '删除时间',
routingHeaderId: '工艺',
routingDetailId: '工序',
routingStepId: '工步',
checkContent: '检验内容',
checkType: '检验标记',
checkParams: '参数名称',
measurementUnit: '单位',
fillintype: '汇报类型',
qualityTemplate: '模板',
isphotograph: '是否拍照',
status: '状态',
extend: '扩展字段',
remark: '备注',
productionRequirement: '生产要求',
standard: '标准指标',
qualityTemplateName: '模板文件名称',
},
plan_resource: {
id: '',
creationTime: '创建时间',
......@@ -1356,7 +1330,6 @@ export default {
checkParams: '检测要求',
measurementUnit: '测量单位',
fillintype: '填报类型',
qualityTemplate: '模板',
isphotograph: '是否拍照',
status: '状态',
extend: '扩展字段',
......@@ -1364,6 +1337,7 @@ export default {
productionRequirement: '生产要求',
standard: '标准指标',
qualityTemplateName: '模板名称',
qualityTemplate: '模板',
isImportant: '关键检验',
firstCheck: '首件检验',
inspection: '巡检',
......
......@@ -15362,8 +15362,7 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -15523,7 +15522,6 @@
"version": "2.9.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
......@@ -15542,7 +15540,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -15645,7 +15642,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -15731,8 +15727,7 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
......@@ -15768,7 +15763,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......@@ -15832,14 +15826,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"yallist": {
"version": "3.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
}
}
},
......@@ -18617,6 +18609,7 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
......@@ -19485,7 +19478,6 @@
"version": "2.9.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
......@@ -19504,7 +19496,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -19607,7 +19598,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -19693,8 +19683,7 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
......@@ -19794,14 +19783,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"yallist": {
"version": "3.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
}
}
},
......
......@@ -5,9 +5,9 @@
<Col :span="6" class="chan-chi">排产池</Col>
<Col :span="18" class="l-ringht">
<RadioGroup v-model="status" type="button" @on-change="changeStatus" size="small">
<Radio label="-1">全部</Radio>
<Radio label="0">未排产</Radio>
<Radio label="2">已排查</Radio>
<!-- <Radio label="-1">全部</Radio> -->
</RadioGroup>
</Col>
</Row>
......@@ -20,7 +20,11 @@
>
<Row class="title-i">
<Col :span="20" class="order-code">
<Checkbox v-model="li.checked" @on-change="checkData(li)">订单号:{{li.mesCode}}</Checkbox>
<Checkbox
v-model="li.checked"
@on-change="checkData(li)"
:disabled="isdisabled"
>订单号:{{li.mesCode}}</Checkbox>
</Col>
<Col :span="4" class="order-ringht">
<Icon type="md-close" @click="close(li.id)" />
......@@ -130,19 +134,18 @@ export default {
},
data() {
return {
// activeindex: 1,
list: [],
status: "-1", //全部排产-1,0为未排产;2为已排查;
status: "0", //全部排产-1,0为未排产;2为已排查;
isdisabled: false,
formItem: {
// resourcesType: 0,
radio: "0",
time: "",
beginTime: "",
endTime: "",
remark: "",
departmentTitle: "",
shopId: "",
userName: ""
shopId: ""
// userName: ""
},
// listGroup: [
// {
......@@ -182,13 +185,18 @@ export default {
};
},
created() {
this.orderlist(-1);
this.orderlist(0);
},
methods: {
// 过滤条件
changeStatus(name) {
this.status = name;
this.orderlist(this.status);
if (this.status == 1) {
this.isdisabled = true;
} else {
this.isdisabled = false;
}
},
//排产池列表
orderlist(a) {
......@@ -233,13 +241,14 @@ export default {
userIds: this.formItem.userIds,
beginTime: this.formItem.beginTime,
endTime: this.formItem.endTime,
remark: this.formItem.remark,
userName: this.formItem.userName
remark: this.formItem.remark
// userName: this.formItem.userName
};
Api.cmonestepschedule(params1).then(r => {
if (r.success) {
this.$Message.success("下发成功");
this.orderlist(this.status);
this.orderIds = [];
} else {
this.$Message.success("下发失败");
this.formItem = {};
......@@ -259,6 +268,7 @@ export default {
if (r.success) {
this.$Message.success("下发成功");
this.orderlist(this.status);
this.orderIds = [];
this.formItem = {};
this.formItem.radio = 0;
} else {
......
......@@ -648,7 +648,7 @@ export default {
.then(res => {
if (res.success && res.result.length > 1) {
res.result.forEach(data => {
this.changeCountOut(data.poolType + "", data.count);
this.changeCountOut(data.poolType, data.count);
});
}
})
......
......@@ -5,9 +5,9 @@
<Col :span="6" class="chan-chi">排产池</Col>
<Col :span="18" class="l-ringht">
<RadioGroup v-model="status" type="button" @on-change="changeStatus" size="small">
<Radio label="-1">全部</Radio>
<Radio label="0">未排产</Radio>
<Radio label="2">已排查</Radio>
<Radio label="-1">全部</Radio>
</RadioGroup>
</Col>
</Row>
......@@ -152,7 +152,7 @@ export default {
active: null,
activeindex: 1,
list: [],
status: "-1", //全部排产-1,0为未排产;2为已排查;
status: "0", //全部排产-1,0为未排产;2为已排查;
result: [],
isactive: null,
resourcesType: null,
......@@ -161,13 +161,13 @@ export default {
maxnum: 1,
chaiModal: false,
orderId: 0,
quantity: 0,
routingHeaderId: 0,
detailId: 0
};
},
created() {
this.orderlist(-1);
this.orderlist(0);
},
methods: {
// 排产池过滤条件
......@@ -217,7 +217,6 @@ export default {
u.chai = false;
});
this.result = r.result;
this.quantity = r.result.quantity;
}
});
},
......@@ -303,7 +302,7 @@ export default {
},
//下发
lowerHair() {
if (this.orderId || this.quantity) {
if (this.orderId) {
var items = [];
var obj = {};
if (this.mode == 1) {
......@@ -324,7 +323,7 @@ export default {
items: items
};
Api.flonestepschedule(data).then(r => {
if (r.success) {
if (r.result) {
this.$Message.success("下发成功");
this.orderlist(this.status);
} else {
......@@ -349,7 +348,7 @@ export default {
items: items
};
Api.fltwostepschedule(data).then(r => {
if (r.success) {
if (r.result) {
this.$Message.success("下发成功");
this.orderlist(this.status);
} else {
......
......@@ -297,7 +297,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail",title: "查看" },
attrs: { oprate: "detail", title: "查看" },
on: { click: () => this.detail(params.row) }
},
"查看"
......@@ -305,7 +305,7 @@ export default {
h(
"op",
{
attrs: { oprate: "edit",title: "编辑" },
attrs: { oprate: "edit", title: "编辑" },
on: { click: () => this.edit(params.row) },
style:
(params.row.status == 1 &&
......@@ -321,7 +321,7 @@ export default {
h(
"op",
{
attrs: { oprate: "remove",title: "删除" },
attrs: { oprate: "remove", title: "删除" },
on: { click: () => this.remove(params.row) },
style:
(params.row.status == 1 &&
......@@ -336,7 +336,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail",title: "分解" },
attrs: { oprate: "detail", title: "分解" },
on: { click: () => this.split(params.row) },
style:
(params.row.divideMark != 0 &&
......@@ -864,10 +864,12 @@ export default {
sendOk() {
this.$refs.orderSend.$refs["formValidate"].validate(valid => {
if (valid) {
let objInfo = this.$refs.orderSend.returnData();
let ids = this.arrayIds;
let objInfoTem = this.$refs.orderSend.returnData();
let parms = [];
ids.forEach(e => {
let objInfo = this.$u.clone(objInfoTem);
objInfo.id = e;
parms.push(objInfo);
});
......
......@@ -11,7 +11,7 @@ export default {
return Api.post(`${technologyUrl}routingstep/create`,params);
},
update(params){
return Api.post(`${technologyUrl}routingstep/update`,params);
return Api.put(`${technologyUrl}routingstep/update`,params);
},
delete(id) {
return Api.delete(`${technologyUrl}routingstep/delete`,{params:{id:id}});
......
......@@ -47,14 +47,19 @@
<InputNumber v-model="entity.routingStepId"></InputNumber>
</FormItem>
</Col>
-->
<Col :span="12">
<Col :span="12">
<FormItem :label="l('routingHeaderName')" prop="routingHeaderId">
<!--<InputNumber v-model="entity.routingHeaderId"></InputNumber>-->
181
<InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="entity.qualityTemplate" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
-->
<Col :span="8">
<FormItem :label="l('routingDetailName')" prop="routingDetailId">
<Select v-model="entity.routingDetailId">
<Option
......@@ -65,64 +70,29 @@
</Select>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
<Col :span="8">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('fillintype')" prop="fillintype">
<Dictionary code="QC.fillintype" v-model="entity.fillintype"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="entity.qualityTemplate" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productionRequirement')" prop="productionRequirement">
<Input v-model="entity.productionRequirement" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard" type="textarea" :rows="2"></Input>
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="24">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<Input v-model="entity.qualityTemplateName"></Input>
<files ref="refFile" :parms="parms" files singleFile />
</FormItem>
</Col>
<Col :span="12">
......@@ -135,26 +105,58 @@
<Dictionary code="Process.state" v-model="entity.firstCheck" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('inspection')" prop="inspection">
<Dictionary code="Process.state" v-model="entity.inspection" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('inspectionTime')" prop="inspectionTime">
<InputNumber v-model="entity.inspectionTime"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('sampling')" prop="sampling">
<Dictionary code="Process.state" v-model="entity.sampling" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('samplingBatch')" prop="samplingBatch">
<Input v-model="entity.samplingBatch"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
......@@ -196,7 +198,13 @@ export default {
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
},
routingDetailList: []
routingDetailList: [],
parms: {
app: 'qccard',
eid: null,
name: '',
field: ''
}
};
},
props: {
......@@ -205,6 +213,8 @@ export default {
},
mounted() {
this.loadDetails();
this.parms.eid = this.$u.guid()
this.$refs.refFile.intFiles()
if (this.eid > 0) {
this.load(this.eid);
}
......@@ -214,12 +224,29 @@ export default {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
this.entity.qualityTemplateName = ''
this.entity.qualityTemplate=''
if (this.$refs.refFile.nameList.length > 0) {
let nameList=this.$refs.refFile.nameList
let names=[]
let url=[]
nameList.forEach(e => {
names.push(e.fileName)
url.push(e.filePath)
});
this.entity.qualityTemplateName = JSON.stringify(names).replace('[','').replace(']','').replace(/\"/g,'')//附件本地库暂存文件名称
this.entity.qualityTemplate=JSON.stringify(url).replace('[','').replace(']','').replace(/\"/g,'')
}
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
//let newId = r.result
//this.updateEid(newId) //更新服务器上的id
} else {
this.$Message.error("保存失败");
}
......@@ -257,6 +284,20 @@ export default {
});
this.routingDetailList = tempD;
});
},
//新增时将uid转为eid
updateEid(newId) {
let parms = {
eid: this.parms.eid,
id: newId + ''
}
this.$http.sysUser.updateEid(parms).then((res) => {
if (res.status) {
// this.$Message.success('修改成功!')
} else {
//this.$Message.error('修改失败!')
}
})
},
l(key) {
key = "routing_qc_card" + "." + key;
......
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('routingHeaderName')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingHeaderName')" v-if="false">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingDetailName')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingStepId')" v-if="false">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('standard')">{{entity.standard}}</Filed>
<Filed :span="12" :name="l('fillintype')">
<state code="QC.fillintype" :value="entity.fillintype+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('productionRequirement')">{{entity.productionRequirement}}</Filed>
<Filed :span="12" :name="l('checkContent')">{{entity.checkContent}}</Filed>
<Filed :span="12" :name="l('qualityTemplateName')"><a :href="downUrl+entity.qualityTemplate" target="_blank">{{entity.qualityTemplateName}}</a></Filed>
<Filed :span="12" :name="l('isImportant')">
<state code="Process.state" :value="entity.isImportant+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('firstCheck')">
<state code="Process.state" :value="entity.firstCheck+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('inspection')">
<state code="Process.state" :value="entity.inspection+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('inspectionTime')">{{entity.inspectionTime}}</Filed>
<Filed :span="12" :name="l('sampling')">
<state code="Process.state" :value="entity.sampling+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('samplingBatch')">{{entity.samplingBatch}}</Filed>
<Filed :span="12" :name="l('checkType')">
<state
code="QC.checktype"
:value="entity.checkType+''"
type="text"
></state>
</Filed>
<Filed :span="24" :name="l('checkParams')">{{entity.checkParams}}</Filed>
<state code="QC.checktype" v-modev="entity.checkType+''"></state>
</Filed>
<Filed :span="12" :name="l('routingStepId')" v-if="false">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('checkParams')">{{entity.checkParams}}</Filed>
<Filed :span="12" :name="l('measurementUnit')">{{entity.measurementUnit}}</Filed>
<Filed :span="12" :name="l('fillintype')">
<state
code="QC.fillintype"
:value="entity.fillintype+''"
type="text"
></state>
</Filed>
<Filed :span="24" :name="l('qualityTemplate')">{{entity.qualityTemplate}}</Filed>
<Filed :span="12" :name="l('isphotograph')">{{entity.isphotograph}}</Filed>
<Filed :span="12" :name="l('status')"><state
code="Process.state"
:value="entity.status+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('status')">
<state code="Process.state" :value="entity.status+''" type="text"></state>
</Filed>
<Filed :span="12" :name="l('extend')" v-if="false">{{entity.extend}}</Filed>
<Filed :span="24" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="24" :name="l('productionRequirement')">{{entity.productionRequirement}}</Filed>
<Filed :span="24" :name="l('standard')">{{entity.standard}}</Filed>
<Filed :span="12" :name="l('qualityTemplateName')">{{entity.qualityTemplateName}}</Filed>
<Filed :span="12" :name="l('isImportant')"><state
code="Process.state"
:value="entity.isImportant+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('firstCheck')"><state
code="Process.state"
:value="entity.firstCheck+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('inspection')"><state
code="Process.state"
:value="entity.inspection+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('inspectionTime')">{{entity.inspectionTime}}</Filed>
<Filed :span="12" :name="l('sampling')">
<state
code="Process.state"
:value="entity.sampling+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('samplingBatch')">{{entity.samplingBatch}}</Filed>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('creatorUserId')"><User :value="entity.creatorUserId"></User></Filed>
<Filed :span="12" :name="l('creatorUserId')">
<User :value="entity.creatorUserId"></User>
</Filed>
<Filed :span="12" :name="l('lastModificationTime')">{{entity.lastModificationTime}}</Filed>
<Filed :span="12" :name="l('lastModifierUserId')"><User v-model="entity.lastModifierUserId"></User></Filed>
<Filed :span="12" :name="l('lastModifierUserId')">
<User v-model="entity.lastModifierUserId"></User>
</Filed>
<!-- <Filed :span="12" :name="l('isDeleted')">{{entity.isDeleted}}</Filed>
<Filed :span="12" :name="l('deleterUserId')">{{entity.deleterUserId}}</Filed>
<Filed :span="12" :name="l('deletionTime')">{{entity.deletionTime}}</Filed>
......@@ -77,7 +64,15 @@ export default {
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }]
}
},
parms: {
app: 'contract',
eid: null,
name: '',
field: ''
},
downUrl: fileUrlDown,
fileUrlPath: "",
};
},
props: {
......@@ -92,6 +87,8 @@ export default {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.parms.eid = r.result.id
this.$refs.refFile.intFiles()
this.$emit("on-load");
});
},
......
......@@ -48,75 +48,41 @@
</FormItem>
</Col>
-->
<Col :span="12">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
<Col :span="8">
<FormItem :label="l('routingDetailName')" prop="routingDetailId">
<Select v-model="entity.routingDetailId">
<Option
v-for="(item,index) in routingDetailList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('fillintype')" prop="fillintype">
<Dictionary code="QC.fillintype" v-model="entity.fillintype"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="entity.qualityTemplate" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productionRequirement')" prop="productionRequirement">
<Input v-model="entity.productionRequirement" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard" type="textarea" :rows="2"></Input>
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="24">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<Input v-model="entity.qualityTemplateName"></Input>
<files ref="refFile" :parms="parms" files singleFile/>
</FormItem>
</Col>
<Col :span="12">
......@@ -129,26 +95,58 @@
<Dictionary code="Process.state" v-model="entity.firstCheck" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('inspection')" prop="inspection">
<Dictionary code="Process.state" v-model="entity.inspection" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('inspectionTime')" prop="inspectionTime">
<InputNumber v-model="entity.inspectionTime"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('sampling')" prop="sampling">
<Dictionary code="Process.state" v-model="entity.sampling" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="6">
<FormItem :label="l('samplingBatch')" prop="samplingBatch">
<Input v-model="entity.samplingBatch"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
......@@ -166,6 +164,13 @@ export default {
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
},
routingDetailList: [],
parms: {
app: 'qccard',
eid: null,
name: '',
field: ''
}
};
},
......@@ -173,6 +178,7 @@ export default {
eid: Number
},
mounted() {
this.loadDetails();
if (this.eid > 0) {
this.load(this.eid);
}
......@@ -180,6 +186,7 @@ export default {
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.$refs.refFile.intFilesClone()
this.entity = r.result;
});
},
......@@ -208,6 +215,24 @@ export default {
handleClose() {
this.$emit("on-close");
},
loadDetails() {
//获取工序列表
let parms = {
headerID: 181
};
Api.pagedDetails(parms).then(r => {
let tempDetails = r.result;
let tempD = [];
tempDetails.forEach(data => {
let tempObj = {};
tempObj.value = data.id;
tempObj.label = data.name;
tempD.push(tempObj);
})
this.routingDetailList = tempD
});
},
l(key) {
key = "routing_qc_card" + "." + key;
return this.$t(key);
......
<template>
<div>
{{info}}
{{info}}
<DataGrid :columns="columns" ref="grid" :action="action">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
......@@ -129,13 +129,6 @@ export default {
high: true,
code: "QC.fillintype"
},
{
key: "qualityTemplate",
title: this.l("qualityTemplate"),
align: "left",
easy: true,
high: true
},
{
key: "isphotograph",
title: this.l("isphotograph"),
......@@ -169,7 +162,19 @@ export default {
title: this.l("qualityTemplateName"),
align: "left",
easy: true,
high: true
high: true,
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.view(params.row.id) }
},
params.row.qualityTemplateName
)
]);
}
},
{
key: "isImportant",
......@@ -247,7 +252,9 @@ export default {
]);
}
}
]
],
downUrl: fileUrlDown,
fileUrlPath: ""
};
},
mounted() {
......@@ -301,6 +308,10 @@ export default {
this.curId = 0;
this.modal = false;
},
openTemplate(url) {
this.fileUrlPath = this.downUrl + path;
alert(this.fileUrlPath)
},
l(key) {
let vkey = "routing_qc_card" + "." + key;
return this.$t(vkey) || key;
......
......@@ -18,17 +18,17 @@
</FormItem>
</Col>
-->
<Col :span="12">
<Col :span="8">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
code="mes_xingchi_resource.material.materialReType"
......@@ -36,64 +36,64 @@
></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('materialNumber')" prop="materialNumber">
<Input v-model="entity.materialNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('nameMaterial')" prop="nameMaterial">
<Input v-model="entity.nameMaterial"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('brand')" prop="brand">
<Input v-model="entity.brand"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('specifications')" prop="specifications">
<Input v-model="entity.specifications"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('xhgg')" prop="xhgg">
<Input v-model="entity.xhgg"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('texture')" prop="texture">
<Input v-model="entity.texture"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('procurementStandards')" prop="procurementStandards">
<Input v-model="entity.procurementStandards"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('qualityGrade')" prop="qualityGrade">
<Input v-model="entity.qualityGrade"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('drawNum')" prop="drawNum">
<Input v-model="entity.drawNum"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="entity.state" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark"></Input>
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
</Row>
......
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('routingHeaderId')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingHeaderId')" v-if="false">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingDetailId')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingStepId')">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('routingStepId')" v-if="false">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('quantity')">{{entity.quantity}}</Filed>
<Filed :span="12" :name="l('materialId')">{{entity.materialId}}</Filed>
<Filed :span="12" :name="l('materialType')"><state
......@@ -27,8 +27,8 @@
></state>
</Filed>
<Filed :span="12" :name="l('extend')" v-if="false">{{entity.extend}}</Filed>
<Filed :span="12" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="12" :name="l('drawNum')">{{entity.drawNum}}</Filed>
<Filed :span="24" :name="l('remark')">{{entity.remark}}</Filed>
</Row>
</div>
</template>
......
......@@ -18,17 +18,17 @@
</FormItem>
</Col>
-->
<Col :span="12">
<Col :span="8">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
code="mes_xingchi_resource.material.materialReType"
......@@ -36,64 +36,64 @@
></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('materialNumber')" prop="materialNumber">
<Input v-model="entity.materialNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('nameMaterial')" prop="nameMaterial">
<Input v-model="entity.nameMaterial"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('brand')" prop="brand">
<Input v-model="entity.brand"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('specifications')" prop="specifications">
<Input v-model="entity.specifications"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('xhgg')" prop="xhgg">
<Input v-model="entity.xhgg"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('texture')" prop="texture">
<Input v-model="entity.texture"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('procurementStandards')" prop="procurementStandards">
<Input v-model="entity.procurementStandards"></Input>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('qualityGrade')" prop="qualityGrade">
<Input v-model="entity.qualityGrade"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="entity.state" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<Col :span="8">
<FormItem :label="l('drawNum')" prop="drawNum">
<Input v-model="entity.drawNum"></Input>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="entity.state" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark"></Input>
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
</Row>
......
......@@ -16,7 +16,7 @@
right: 0;
// bottom:100%;
// right: 100%;
z-index: 990;
z-index: 898;
background-color: white;
// background: red;
.top {
......
......@@ -46,7 +46,7 @@ const systemApi = {
window.workflowUrl = `http://${address}:10060/api/services/app`; // 工作流地址
window.certificateUrl = `http://${address}:10090/api/services/app`; //Process-api
window.crmUrl = `http://${address}:10100/api/services/app`; //crm客户、合同、项目管理
window.iconImg = `http://${hostAddress}:3006/imgicon/`; //待办任务图标路径
window.iconImg = `http://${address}:3006/imgicon/`; //待办任务图标路径
window.apsManualUrl = `http://${apsAdress}:10091/api/services/app`;//aps手工排产
window.apsUrl = `http://${apsAdress}:10110/api/services/app`;//aps排产
window.technologyUrl =`http://${address}:10031/api/services/app/`;
......
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