Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop

This commit is contained in:
caoqianming 2021-11-22 14:37:41 +08:00
commit b80b3ac5f2
1 changed files with 564 additions and 416 deletions

View File

@ -2,27 +2,34 @@
<div class="app-container">
<el-card>
<el-row :gutter="24">
<!--表格-->
<el-col :span="6">
<el-card>
<div slot="header" class="clearfix">
<span style="font-size: 16px; font-weight: 700"
>物料检验记录表</span
<div
slot="header"
class="clearfix"
>
<span style="font-size: 16px; font-weight: 700">物料检验记录表</span>
</div>
<el-button type="primary" icon="el-icon-plus" @click="handleCreate"
>新增</el-button
<el-button
type="primary"
icon="el-icon-plus"
@click="handleCreate"
>
新增
</el-button>
<!--表格列表-->
<el-table
v-el-height-adaptive-table="{ bottomOffset: 50 }"
:data="recordformList.results"
border
fit
stripe
highlight-current-row
height="100"
v-el-height-adaptive-table="{ bottomOffset: 50 }"
@current-change="handleCurrentChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="index" width="50"/>
<el-table-column label="表名称">
<template slot-scope="scope">{{ scope.row.name }}</template>
</el-table-column>
@ -31,22 +38,26 @@
<el-link
v-if="checkPermission(['material_update'])"
@click="handleLook(scope)"
>查看</el-link
>查看
</el-link
>
<el-link
v-if="checkPermission(['material_update'])"
@click="handleEdit(scope)"
>编辑</el-link
>编辑
</el-link
>
<el-link
v-if="checkPermission(['material_delete'])"
type="danger"
@click="handleDelete(scope)"
>删除</el-link
>删除
</el-link
>
</template>
</el-table-column>
</el-table>
<!--新增编辑记录表格-->
<el-dialog
:visible.sync="dialogVisible"
:title="dialogType === 'edit' ? '编辑记录表格' : '新增记录表格'"
@ -58,42 +69,45 @@
label-position="right"
>
<el-form-item label="表格名称" prop="name">
<el-input v-model="recordform.name" placeholder="表格名称" />
<el-input v-model="recordform.name" placeholder="表格名称"/>
</el-form-item>
</el-form>
<div style="text-align: right">
<el-button type="danger" @click="dialogVisible = false"
>取消</el-button
>
>取消
</el-button>
<el-button type="primary" @click="recordformconfirm('Forms')"
>确认</el-button
>
>确认
</el-button>
</div>
</el-dialog>
<!--表格展示-->
<el-dialog
:model="tableForm"
:visible.sync="dialogVisibleForm"
:title="tableForm.name"
>
<el-form label-width="80px" label-position="right">
<el-form ref="Forms" label-width="80px" :model="checkForm">
<el-row
v-for="(item, $index) in fieldList.results"
v-show="filterBlock(item.parent,item.rule_expression,item.need_judge)"
:key="$index"
>
<el-form-item
v-if="item.field_type === 'string'"
:label="item.field_name"
>
<el-input placeholder="请输入" v-model="item.sort" />
<el-form-item v-if="item.field_type === 'string'" :label="item.field_name">
<el-input
v-model="checkForm[item.field_key]"
placeholder="请输入"
@input="keyChange(item.field_key)"
/>
</el-form-item>
<el-form-item
v-else-if="item.field_type === 'int'"
:label="item.field_name"
>
<el-input
v-model="checkForm[item.field_key]"
type="number"
placeholder="请输入"
v-model="item.sort"
@input="keyChange(item.field_key)"
/>
</el-form-item>
<el-form-item
@ -101,9 +115,10 @@
:label="item.field_name"
>
<el-input
v-model="checkForm[item.field_key]"
type="number"
placeholder="请输入"
v-model="item.sort"
@input="keyChange(item.field_key)"
/>
</el-form-item>
<el-form-item
@ -111,11 +126,12 @@
:label="item.field_name"
>
<el-date-picker
v-model="item.create_time"
v-model="checkForm[item.field_key]"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%"
@change="keyChange(item.field_key)"
>
</el-date-picker>
</el-form-item>
@ -124,11 +140,12 @@
:label="item.field_name"
>
<el-date-picker
v-model="item.create_time"
v-model="checkForm[item.field_key]"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@change="keyChange(item.field_key)"
>
</el-date-picker>
</el-form-item>
@ -137,9 +154,10 @@
:label="item.field_name"
>
<el-select
v-model="checkForm[item.field_key]"
style="width: 100%"
v-model="item.sort"
placeholder="请选择"
@change="keyChange(item.field_key)"
>
<el-option
v-for="item1 in item.field_choice"
@ -155,8 +173,8 @@
:label="item.field_name"
>
<el-select
v-model="checkForm[item.field_key]"
style="width: 100%"
v-model="optio"
multiple
placeholder="请选择"
>
@ -178,6 +196,7 @@
</el-dialog>
</el-card>
</el-col>
<!--表格字段-->
<el-col :span="18">
<el-card>
<div slot="header" class="clearfix">
@ -187,8 +206,10 @@
type="primary"
icon="el-icon-plus"
@click="handlefieldCreate"
>新增</el-button
>新增
</el-button
>
<!--表格字段列表-->
<el-table
:data="fieldList.results"
border
@ -198,23 +219,26 @@
height="100"
v-el-height-adaptive-table="{ bottomOffset: 50 }"
>
<el-table-column type="index" width="50" />
<el-table-column type="index" width="50"/>
<el-table-column label="字段名称">
<template slot-scope="scope">{{
scope.row.field_name
}}</template>
}}
</template>
</el-table-column>
<el-table-column label="字段类型">
<template slot-scope="scope">{{
options_[scope.row.field_type]
}}</template>
}}
</template>
</el-table-column>
<el-table-column label="字段标识">
<template slot-scope="scope">{{
scope.row.field_key
}}</template>
}}
</template>
</el-table-column>
<!--
<el-table-column label="上限值">
@ -250,13 +274,15 @@
<el-link
v-if="checkPermission(['material_update'])"
@click="handlefieldEdit(scope)"
>编辑</el-link
>编辑
</el-link
>
<el-link
v-if="checkPermission(['material_delete'])"
type="danger"
@click="handlefieldDelete(scope)"
>删除</el-link
>删除
</el-link
>
</template>
</el-table-column>
@ -268,6 +294,7 @@
:limit.sync="listQueryfield.page_size"
@pagination="fieldLists"
/>
<!--表格字段新增编辑-->
<el-dialog
:visible.sync="dialogVisible1"
:title="dialogType1 === 'edit' ? '编辑表格字段' : '新增表格字段'"
@ -294,14 +321,10 @@
</el-select>
</el-form-item>
<el-form-item label="字段标识" prop="field_key">
<el-input
v-model="field.field_key"
placeholder="字段标识"
onkeyup="value=value.replace(/[^A-Za-z_\/]/ig,'')"
/>
<el-input v-model="field.field_key" placeholder="字段标识" @input="checkValue"/>
</el-form-item>
<el-form-item label="字段名称" prop="field_name">
<el-input v-model="field.field_name" placeholder="字段名称" />
<el-input v-model="field.field_name" placeholder="字段名称"/>
</el-form-item>
<el-form-item
label="选项"
@ -340,7 +363,9 @@
</el-col>
</el-row>
</el-form-item>
<el-form-item label="字段父级">
<treeselect v-model="field.parent" :multiple="false" :options="treeDate" placeholder="字段父级"/>
</el-form-item>
<el-form-item label="是否需要判定" prop="need_judge">
<el-switch v-model="field.need_judge"></el-switch>
</el-form-item>
@ -406,10 +431,7 @@
</el-select>
</el-form-item>
!-->
!-->
<el-form-item label="表达式" v-if="field.need_judge == true">
<el-input v-model="field.rule_expression" type="textarea"/>
</el-form-item>
@ -424,10 +446,12 @@
</el-form>
<div style="text-align: right">
<el-button type="danger" @click="dialogVisible1 = false"
>取消</el-button
>取消
</el-button
>
<el-button type="primary" @click="fieldconfirm('Form')"
>确认</el-button
>确认
</el-button
>
</div>
</el-dialog>
@ -439,11 +463,11 @@
</template>
<script>
import checkPermission from "@/utils/permission";
import { getEquipmentAll } from "@/api/equipment";
import vueJsonEditor from "vue-json-editor";
import { upUrl, upHeaders } from "@/api/file";
import {
import checkPermission from "@/utils/permission";
import {getEquipmentAll} from "@/api/equipment";
import vueJsonEditor from "vue-json-editor";
import {upUrl, upHeaders} from "@/api/file";
import {
getrecordformList,
createrecordform,
updaterecordform,
@ -452,18 +476,21 @@ import {
createrffield,
updaterffield,
deleterffield,
} from "@/api/mtm";
import { genTree } from "@/utils";
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
const defaultstep = {
} from "@/api/mtm";
import {genTree} from "@/utils";
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
const defaultstep = {
name: "",
number: "",
};
};
const defaultrecordform = {};
const defaultfield = {};
export default {
components: { Pagination, vueJsonEditor },
const defaultrecordform = {};
const defaultfield = {};
export default {
components: {Pagination, vueJsonEditor, Treeselect},
data() {
return {
step: defaultstep,
@ -481,22 +508,24 @@ export default {
field_key: "",
field_name: "",
sort: "",
parent: "",
field_choice: [""],
},
field_choice: [""],
options: [],
optio: [],
rule1: {
name: [{ required: true, message: "请输入", trigger: "blur" }],
number: [{ required: true, message: "请输入", trigger: "blur" }],
name: [{required: true, message: "请输入", trigger: "blur"}],
number: [{required: true, message: "请输入", trigger: "blur"}],
},
recordform: defaultrecordform,
dialogType: "new",
dialogVisible: false,
dialogType1: "new",
dialogVisible1: false,
tableForm: {
name: "",
tableForm: defaultrecordform,
checkForm:{
hhh:'',
},
listQueryrecordform: {
page: 1,
@ -508,17 +537,18 @@ export default {
fieldList: {
count: 0,
},
treeDate: [],
listQueryfield: {
page: 1,
page_size: 20,
},
highoptions: [
{ value: 1, label: "<" },
{ value: 2, label: "<=" },
{value: 1, label: "<"},
{value: 2, label: "<="},
],
lowoptions: [
{ value: 1, label: ">" },
{ value: 2, label: ">=" },
{value: 1, label: ">"},
{value: 2, label: ">="},
],
highoptionss_: {
1: "<",
@ -586,6 +616,85 @@ export default {
this.recordformLists();
},
methods: {
keyChange(key){
let y = this.checkForm[key];
this.$set(this.checkForm,key,y);
this.fieldList.results=[...this.fieldList.results];
this.filterBlock();
},
filterBlock(parent,rule,judge){
let that = this;
if(parent!==''&&parent!==null&&parent!==undefined){
if(judge){
if(rule!==''&&rule!==null&&rule!==undefined){
let reg = /\{(.+?)\}/g;
//let str = rule.replace(temp,'').replace('$','');//==''
//let y = that.checkForm[key];
if(rule.indexOf('||')>-1||rule.indexOf('&&')>-1){
let tam = '', arr = [];
if(rule.indexOf('||')>-1){
arr = rule.split('||');
}else{
arr = rule.split('&&');
}
for (let i = 0;i<arr.length;i++){
//获取判断依据
let a = '';
a = arr[i].replace(/`/g,'');
a = '`'+ a+'`';
let tem =a.match(reg)[0];
let ky = tem.replace(/\{|\}/g, '');//qipao
if(that.checkForm[ky]){
//替换变量
a = a.replace(ky, 'yyy');
let yyy = "'"+that.checkForm[ky]+"'";
if(eval(eval( a))){
tam += 'true';
}else{
tam += 'false';
}
}else{
tam += 'false';
}
}
let rea = true;
if(rule.indexOf('||')>-1){
if( tam.indexOf('true')>-1){
rea = true;
}else{
rea = false;
}
}else{
if( tam.indexOf('false')>-1){
rea = false;
}else{
rea = true;
}
}
return rea;
}else{
let temp =rule.match(reg)[0];
let key = temp.replace(/\{|\}/g, '');//qipao
let a = rule.replace(key, 'yy');
a = a.replace(key, 'yy');
let yy = "'"+that.checkForm[key]+"'";
return eval(eval(a));
// return eval("'"+y+"'"+str);
}
debugger;
}else{
return false;
}
}else{
return true;
}
}else{
return true;
}
},
checkValue() {
this.field.field_key = this.field.field_key.replace(/[^a-zA-Z]/g, '');
},
//添加字段选项
addDomain() {
this.field_choice.push("");
@ -596,10 +705,26 @@ export default {
},
handleLook(scope) {
debugger;
console.log(scope);
this.dialogVisibleForm = true;
// console.log(scope);
let that = this;
this.tableForm = Object.assign({}, scope.row); // copy obj
this.formID = this.tableForm.id;
this.listQueryfield.form = this.formID;
getrffieldList(this.listQueryfield).then((response) => {
if (response.data) {
debugger;
this.fieldList = response.data;
let list = response.data.results;
for(let i=0;i<list.length;i++){
let key = list[i].field_key;
that.checkForm[key]='';
that.$set(that.checkForm,key,'')
}
this.dialogVisibleForm = true;
console.log(that.checkForm);
debugger;
}
});
this.fieldLists();
},
checkPermission,
@ -607,6 +732,7 @@ export default {
handleCurrentChange(row) {
this.formID = row.id;
this.fieldLists();
this.fieldLists1();
},
recordformLists() {
this.listQueryrecordform.material = this.material;
@ -618,10 +744,27 @@ export default {
});
},
fieldLists() {
this.listQueryfield.form = this.formID;
getrffieldList(this.listQueryfield).then((response) => {
let that = this;
that.listQueryfield.form = that.formID;
getrffieldList(that.listQueryfield).then((response) => {
if (response.data) {
this.fieldList = response.data;
that.fieldList = response.data;
that.fieldList.results=[...that.fieldList.results]
}
});
},
fieldLists1() {
let params = new Object();
let that = this;
params.page = 0;
params.form = this.formID;
getrffieldList(params).then((response) => {
if (response.data) {
let data = response.data;
data.forEach(item => {
item.name = item.field_name;
});
that.treeDate = genTree(data);
}
});
},
@ -637,7 +780,7 @@ export default {
//新增字段
handlefieldCreate() {
this.field_choice = [""];
this.field = Object.assign({}, defaultfield);
// this.field = Object.assign({}, defaultfield);
this.dialogType1 = "new";
this.dialogVisible1 = true;
this.$nextTick(() => {
@ -685,6 +828,7 @@ export default {
.then(async () => {
await deleterffield(scope.row.id);
this.fieldLists();
this.fieldLists1();
this.$message.success("成功");
})
.catch((err) => {
@ -733,6 +877,7 @@ export default {
updaterffield(this.field.id, this.field).then((res) => {
if (res.code >= 200) {
this.fieldLists();
this.fieldLists1();
this.dialogVisible1 = false;
this.$message.success("成功");
}
@ -740,9 +885,12 @@ export default {
} else {
this.field.form = this.formID;
this.field.field_choice = this.field_choice;
debugger;
console.log(this.field);
createrffield(this.field).then((res) => {
if (res.code >= 200) {
this.fieldLists();
this.fieldLists1();
this.dialogVisible1 = false;
this.$message.success("成功");
}
@ -754,14 +902,14 @@ export default {
});
},
},
};
};
</script>
<style>
.my-label {
.my-label {
background: #e1f3d8;
}
}
.my-content {
.my-content {
background: #fde2e2;
}
}
</style>