Merge remote-tracking branch 'origin/main'

product
wangchuang 2 years ago
commit ab44ebb63f

@ -87,9 +87,9 @@ public class MaterialController {
//处理id字段转名称若无需转或者为空可删除 //处理id字段转名称若无需转或者为空可删除
for(MaterialEntity entity:list){ for(MaterialEntity entity:list){
Map<String,Object> outAreaMap = new HashMap<>(); Map<String,Object> outAreaMap = new HashMap<>();
entity.setOutArea(generaterSwapUtil.swapRelationFormValue("comInputField102",entity.getOutArea(),"294012196529150981",outAreaMap)); entity.setOutArea(generaterSwapUtil.getPopupSelectValue("381404161809350213","id","areaname",entity.getOutArea(),outAreaMap));
Map<String,Object> inAreaMap = new HashMap<>(); Map<String,Object> inAreaMap = new HashMap<>();
entity.setInArea(generaterSwapUtil.swapRelationFormValue("comInputField102",entity.getInArea(),"294012196529150981",inAreaMap)); entity.setInArea(generaterSwapUtil.getPopupSelectValue("381404161809350213","id","areaname",entity.getInArea(),inAreaMap));
} }
List<MaterialListVO> listVO=JsonUtil.getJsonToList(list,MaterialListVO.class); List<MaterialListVO> listVO=JsonUtil.getJsonToList(list,MaterialListVO.class);
for(MaterialListVO materialVO:listVO){ for(MaterialListVO materialVO:listVO){

@ -87,7 +87,7 @@ public class ReservoirareaController {
//处理id字段转名称若无需转或者为空可删除 //处理id字段转名称若无需转或者为空可删除
for(ReservoirareaEntity entity:list){ for(ReservoirareaEntity entity:list){
Map<String,Object> warehouseIdMap = new HashMap<>(); Map<String,Object> warehouseIdMap = new HashMap<>();
entity.setWarehouseId(generaterSwapUtil.swapRelationFormValue("comInputField109",entity.getWarehouseId(),"294090217084722181",warehouseIdMap)); entity.setWarehouseId(generaterSwapUtil.getPopupSelectValue("380988259175524165","id","name",entity.getWarehouseId(),warehouseIdMap));
entity.setOrgnizeId(generaterSwapUtil.comSelectValues(entity.getOrgnizeId())); entity.setOrgnizeId(generaterSwapUtil.comSelectValues(entity.getOrgnizeId()));
entity.setDepartmentId(generaterSwapUtil.comSelectValues(entity.getDepartmentId())); entity.setDepartmentId(generaterSwapUtil.comSelectValues(entity.getDepartmentId()));
} }

@ -1,12 +1,12 @@
{ {
"name": "linkage-web", "name": "linkage-web",
"version": "3.4.1", "version": "1.1.2",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "linkage-web", "name": "linkage-web",
"version": "3.4.1", "version": "1.1.2",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fullcalendar/bootstrap": "^4.4.0", "@fullcalendar/bootstrap": "^4.4.0",

@ -1,6 +1,6 @@
{ {
"name": "linkage-web", "name": "linkage-web",
"version": "3.4.1", "version": "1.1.2",
"description": "LINKAGE-快速开发平台", "description": "LINKAGE-快速开发平台",
"author": "LINKAGE-快速开发平台", "author": "LINKAGE-快速开发平台",
"license": "MIT", "license": "MIT",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -144,7 +144,8 @@ export default {
logIn: '登录', logIn: '登录',
username: '请输入账号', username: '请输入账号',
password: '请输入密码', password: '请输入密码',
rule: '子账户规则:手机号@账户 例18577778888@101001', // rule: '子账户规则:手机号@账户 例18577778888@101001',
rule: '',
version: '版本', version: '版本',
upper: '大写已锁定', upper: '大写已锁定',
scanTip: '扫码登录', scanTip: '扫码登录',
@ -258,4 +259,4 @@ export default {
cancelAccountTip: '确定要注销该账号?', cancelAccountTip: '确定要注销该账号?',
forcedOffline: '强制下线' forcedOffline: '强制下线'
} }
} }

@ -32,12 +32,12 @@ module.exports = {
* If you want to also use it in dev, you can pass ['production', 'development'] * If you want to also use it in dev, you can pass ['production', 'development']
*/ */
sysConfig: { sysConfig: {
sysVersion: 'V3.4.1', sysVersion: 'V1.0.2',
copyright: 'LINKAGE-BOOT版权所有', copyright: 'LINKAGE-BOOT版权所有',
navigationIcon: '', navigationIcon: '',
logoIcon: '', logoIcon: '',
loginIcon: '', loginIcon: '',
sysName: 'LINKAGE-快速开发平台' sysName: 'LINKAGE-BOOT快速开发平台'
}, },
themeClass: 'blue', themeClass: 'blue',
layoutType: 'classic', layoutType: 'classic',

@ -1,7 +1,8 @@
<template> <template>
<div class="login-container"> <div class="login-container">
<div class="login-version" v-if="sysConfig && sysConfig.sysVersion"> <div class="login-version" v-if="sysConfig && sysConfig.sysVersion">
<p class="login-version-text">{{sysConfig.sysVersion}}</p> <p class="login-version-text">V1.0.2</p>
<!-- <p class="login-version-text">{{sysConfig.sysVersion}}</p>-->
</div> </div>
<div class="login-left"> <div class="login-left">
<a class="login-company-logo" target="_blank" href=""> <a class="login-company-logo" target="_blank" href="">
@ -9,9 +10,9 @@
</a> </a>
<img class="login-banner" src="@/assets/images/login-banner.png" alt=""> <img class="login-banner" src="@/assets/images/login-banner.png" alt="">
<div class="login-left-txt" v-if="showTxt"> <div class="login-left-txt" v-if="showTxt">
<p class="title1">在线自动化可视化系统开发零代码实现80%的基础功能</p> <p class="title1">在线自动化流程可视化 DevOps开发模式实现业务需求核心功能</p>
<p class="title2">已帮助<span>20000+</span>企业完成数字化转型升级</p> <p class="title2">企业宗旨<span>致力于</span>传统制造型企业完成数字化转型升级</p>
<a class="link" target="_blank" href="">了解更多</a> <!-- <a class="link" target="_blank" href="">了解更多</a>-->
</div> </div>
</div> </div>
<div class="login-content"> <div class="login-content">

@ -1,188 +1,182 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="800px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="24">
<el-col :span="24" > <el-form-item label="区域名称" prop="mName">
<el-form-item label="区域名称" <el-input v-model="dataForm.mName" placeholder="请输入" clearable :style='{"width":"100%"}'>
prop="mName" >
<el-input v-model="dataForm.mName"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建时间" <el-form-item label="创建时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建人名称" <el-form-item label="创建人名称" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改时间" <el-form-item label="修改时间" prop="lastmodifytime">
prop="lastmodifytime" > <el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.lastmodifytime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改人名称" <el-form-item label="修改人名称" prop="lastmodifyusername">
prop="lastmodifyusername" > <el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable
<el-input v-model="dataForm.lastmodifyusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
mName : '', visible: false,
creatortime : '', loading: false,
creatorusername : '', isDetail: false,
lastmodifytime : '', dataForm: {
lastmodifyusername : '', mName: '',
}, creatortime: '',
rules: creatorusername: '',
{ lastmodifytime: '',
mName: [ lastmodifyusername: '',
{ },
required: true, rules: {
message: '请输入', mName: [{
trigger: 'blur' required: true,
}, message: '请输入',
], trigger: 'blur'
}, }, ],
},
}
},
computed: {},
watch: {},
created() {
},
mounted() {},
methods: {
clearData(data){
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/areasetting/Areasetting/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/areasetting/Areasetting',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/areasetting/Areasetting/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/areasetting/Areasetting/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/areasetting/Areasetting',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/areasetting/Areasetting/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,250 +1,275 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="区域名称"> <el-form-item label="区域名称">
<el-input v-model="query.mName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.mName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="mName" label="区域名称" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="mName" label="区域名称" width="0" align="left" />
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />
/> <el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" />
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" <el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" />
/> <el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" />
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" <el-table-column label="操作" fixed="right" width="100">
/> <template slot-scope="scope">
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
/> </el-button>
<el-table-column label="操作" fixed="right" <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
width="100" > </el-button>
<template slot-scope="scope"> </template>
<el-button type="text" </el-table-column>
@click="addOrUpdateHandle(scope.row.id)" >编辑 </JNPF-table>
</el-button> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> @pagination="initData" />
</el-button> </div>
</template> </div>
</el-table-column> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
</JNPF-table> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</div> </div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
mName:undefined, data() {
}, return {
treeProps: { detailVisible: false,
children: 'children', query: {
label: 'fullName', mName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'mName', label: '区域名称'}, sidx: "",
{prop: 'creatortime', label: '创建时间'}, },
{prop: 'creatorusername', label: '创建人名称'}, formVisible: false,
{prop: 'lastmodifytime', label: '修改时间'}, exportBoxVisible: false,
{prop: 'lastmodifyusername', label: '修改人名称'}, columnList: [{
], prop: 'mName',
} label: '区域名称'
}, },
computed: { {
menuId() { prop: 'creatortime',
return this.$route.meta.modelId || '' label: '创建时间'
} },
}, {
created() { prop: 'creatorusername',
this.initData() label: '创建人名称'
}, },
methods: { {
goDetail(id){ prop: 'lastmodifytime',
this.detailVisible = true label: '修改时间'
this.$nextTick(() => { },
this.$refs.Detail.init(id) {
}) prop: 'lastmodifyusername',
}, label: '修改人名称'
sortChange({column, prop, order}) { },
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' ],
this.listQuery.sidx = !order ? '' : prop }
this.initData() },
}, computed: {
initData() { menuId() {
this.listLoading = true; return this.$route.meta.modelId || ''
let _query = { }
...this.listQuery, },
...this.query, created() {
menuId:this.menuId this.initData()
}; },
request({ methods: {
url: `/api/areasetting/Areasetting/getList`, goDetail(id) {
method: 'post', this.detailVisible = true
data: _query this.$nextTick(() => {
}).then(res => { this.$refs.Detail.init(id)
var _list =[]; })
for(let i=0;i<res.data.list.length;i++){ },
let _data = res.data.list[i]; sortChange({
_list.push(_data) column,
} prop,
this.list = _list order
this.total = res.data.pagination.total }) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/areasetting/Areasetting/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/areasetting/Areasetting/${id}`, url: `/api/areasetting/Areasetting/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/areasetting/Areasetting/batchRemove/${ids}`,
url: `/api/areasetting/Areasetting/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/areasetting/Areasetting/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/areasetting/Areasetting/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

File diff suppressed because it is too large Load Diff

@ -1,294 +1,358 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="合同编码"> <el-form-item label="合同编码">
<el-input v-model="query.contractCode" placeholder="请输入" clearable> </el-input> <el-input v-model="query.contractCode" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="合同名称"> <el-form-item label="合同名称">
<el-input v-model="query.contractName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.contractName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="contractCode" label="合同编码" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="contractCode" label="合同编码" width="0" align="left" />
<el-table-column prop="contractName" label="合同名称" width="0" align="left" <el-table-column prop="contractName" label="合同名称" width="0" align="left" />
/> <el-table-column prop="contractNo" label="对方合同号" width="0" align="left" />
<el-table-column prop="contractNo" label="对方合同号" width="0" align="left" <el-table-column label="合同类型 " width="0" prop="contractType" algin="left">
/> <template slot-scope="scope">
<el-table-column label="合同类型 " width="0" prop="contractType" algin="left" {{ scope.row.contractType | dynamicText(contractTypeOptions) }}
> </template>
<template slot-scope="scope"> </el-table-column>
{{ scope.row.contractType | dynamicText(contractTypeOptions) }} <el-table-column prop="classification" label="合同分类 " width="0" align="left" />
</template> <el-table-column prop="declarationDate" label="申报日期" width="0" align="left" />
</el-table-column> <el-table-column prop="name" label="供应商/客户名" width="0" align="left" />
<el-table-column prop="classification" label="合同分类 " width="0" align="left" <el-table-column prop="num" label="数量" width="0" align="left" />
/> <el-table-column prop="amount" label="金额" width="0" align="left" />
<el-table-column prop="declarationDate" label="申报日期" width="0" align="left" <el-table-column prop="deptName" label="部门名称" width="0" align="left" />
/> <el-table-column prop="remark" label="备注" width="0" align="left" />
<el-table-column prop="name" label="供应商/客户名" width="0" align="left" <el-table-column prop="creatorusername" label="录入人" width="0" align="left" />
/> <el-table-column prop="status" label="合同状态" width="0" align="left" />
<el-table-column prop="num" label="数量" width="0" align="left" <el-table-column prop="approval" label="集团审批" width="0" align="left" />
/> <el-table-column label="操作" fixed="right" width="150">
<el-table-column prop="amount" label="金额" width="0" align="left" <template slot-scope="scope">
/> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
<el-table-column prop="deptName" label="部门名称" width="0" align="left" </el-button>
/> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
<el-table-column prop="remark" label="备注" width="0" align="left" </el-button>
/> <el-button type="text" @click="goDetail(scope.row.id)">
<el-table-column prop="creatorusername" label="录入人" width="0" align="left" </el-button>
/> </template>
<el-table-column prop="status" label="合同状态" width="0" align="left" </el-table-column>
/> </JNPF-table>
<el-table-column prop="approval" label="集团审批" width="0" align="left" <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
/> @pagination="initData" />
<el-table-column label="操作" fixed="right" </div>
width="150" > </div>
<template slot-scope="scope"> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<el-button type="text" <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
@click="addOrUpdateHandle(scope.row.id)" >编辑 <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</el-button> </div>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
<el-button type="text"
@click="goDetail(scope.row.id)">详情
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
contractCode:undefined, data() {
contractName:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', contractCode: undefined,
label: 'fullName', contractName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'contractCode', label: '合同编码'}, sidx: "",
{prop: 'contractName', label: '合同名称'}, },
{prop: 'contractNo', label: '对方合同号'}, formVisible: false,
{prop: 'contractType', label: '合同类型 '}, exportBoxVisible: false,
{prop: 'classification', label: '合同分类 '}, columnList: [{
{prop: 'declarationDate', label: '申报日期'}, prop: 'contractCode',
{prop: 'name', label: '供应商/客户名'}, label: '合同编码'
{prop: 'num', label: '数量'}, },
{prop: 'amount', label: '金额'}, {
{prop: 'deptName', label: '部门名称'}, prop: 'contractName',
{prop: 'remark', label: '备注'}, label: '合同名称'
{prop: 'creatorusername', label: '录入人'}, },
{prop: 'status', label: '合同状态'}, {
{prop: 'approval', label: '集团审批'}, prop: 'contractNo',
], label: '对方合同号'
contractTypeOptions:[{"fullName":"采购合同","id":"1"},{"fullName":"销售合同","id":"2"}, },
{"fullName":"租赁合同","id":"3"},{"fullName":"仓储合同","id":"4"},{"fullName":"运输合同","id":"5"}, {
{"fullName":"施工合同","id":"6"}], prop: 'contractType',
contractTypeProps:{"label":"fullName","value":"id"}, label: '合同类型 '
} },
}, {
computed: { prop: 'classification',
menuId() { label: '合同分类 '
return this.$route.meta.modelId || '' },
} {
}, prop: 'declarationDate',
created() { label: '申报日期'
this.initData() },
}, {
methods: { prop: 'name',
goDetail(id){ label: '供应商/客户名'
this.detailVisible = true },
this.$nextTick(() => { {
this.$refs.Detail.init(id) prop: 'num',
}) label: '数量'
}, },
sortChange({column, prop, order}) { {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' prop: 'amount',
this.listQuery.sidx = !order ? '' : prop label: '金额'
this.initData() },
}, {
initData() { prop: 'deptName',
this.listLoading = true; label: '部门名称'
let _query = { },
...this.listQuery, {
...this.query, prop: 'remark',
menuId:this.menuId label: '备注'
}; },
request({ {
url: `/api/example/ContractFile/getList`, prop: 'creatorusername',
method: 'post', label: '录入人'
data: _query },
}).then(res => { {
var _list =[]; prop: 'status',
for(let i=0;i<res.data.list.length;i++){ label: '合同状态'
let _data = res.data.list[i]; },
_list.push(_data) {
} prop: 'approval',
this.list = _list label: '集团审批'
this.total = res.data.pagination.total },
],
contractTypeOptions: [{
"fullName": "采购合同",
"id": "1"
}, {
"fullName": "销售合同",
"id": "2"
},
{
"fullName": "租赁合同",
"id": "3"
}, {
"fullName": "仓储合同",
"id": "4"
}, {
"fullName": "运输合同",
"id": "5"
},
{
"fullName": "施工合同",
"id": "6"
}
],
contractTypeProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/example/ContractFile/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/example/ContractFile/${id}`, url: `/api/example/ContractFile/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/example/ContractFile/batchRemove/${ids}`,
url: `/api/example/ContractFile/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/example/ContractFile/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/example/ContractFile/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "contractCode", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "contractCode",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,241 +1,235 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="600px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="12">
<el-col :span="12" > <el-form-item label="客户编码" prop="supplierCd">
<el-form-item label="客户编码" <el-input v-model="dataForm.supplierCd" placeholder="请输入客户编码" clearable
prop="supplierCd" > :style='{"width":"100%"}'>
<el-input v-model="dataForm.supplierCd"
placeholder="请输入客户编码" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="客户名称" <el-form-item label="客户名称" prop="supplierNm">
prop="supplierNm" > <el-input v-model="dataForm.supplierNm" placeholder="请输入客户名称" clearable
<el-input v-model="dataForm.supplierNm" :style='{"width":"100%"}'>
placeholder="请输入客户名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="所属公司ID" <el-form-item label="所属公司ID" prop="orgId">
prop="orgId" > <el-input v-model="dataForm.orgId" placeholder="请输入所属公司ID" clearable
<el-input v-model="dataForm.orgId" :style='{"width":"100%"}'>
placeholder="请输入所属公司ID" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="公司代码" <el-form-item label="公司代码" prop="orgName">
prop="orgName" > <el-input v-model="dataForm.orgName" placeholder="请输入公司代码" clearable
<el-input v-model="dataForm.orgName" :style='{"width":"100%"}'>
placeholder="请输入公司代码" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="客户等级" <el-form-item label="客户等级" prop="customerLevel">
prop="customerLevel" > <el-select v-model="dataForm.customerLevel" placeholder="请选择客户等级" :style='{"width":"100%"}'>
<el-select v-model="dataForm.customerLevel" <el-option v-for="(item, index) in customerLevelOptions" :key="index"
placeholder="请选择客户等级" :style='{"width":"100%"}'> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in customerLevelOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="联系人" <el-form-item label="联系人" prop="contactName">
prop="contactName" > <el-input v-model="dataForm.contactName" placeholder="请输入联系人" clearable
<el-input v-model="dataForm.contactName" :style='{"width":"100%"}'>
placeholder="请输入联系人" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="地址" <el-form-item label="地址" prop="address">
prop="address" > <el-input v-model="dataForm.address" placeholder="请输入地址" clearable
<el-input v-model="dataForm.address" :style='{"width":"100%"}'>
placeholder="请输入地址" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="电话" <el-form-item label="电话" prop="contactPhone">
prop="contactPhone" > <el-input v-model="dataForm.contactPhone" placeholder="请输入电话" clearable
<el-input v-model="dataForm.contactPhone" :style='{"width":"100%"}'>
placeholder="请输入电话" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="是否启用" <el-form-item label="是否启用" prop="status">
prop="status" > <el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0">
<el-switch v-model="dataForm.status"
:active-value="1" :inactive-value="0" >
</el-switch> </el-switch>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
supplierCd : '', visible: false,
supplierNm : '', loading: false,
orgId : '', isDetail: false,
orgName : '', dataForm: {
customerLevel : "1", supplierCd: '',
contactName : '', supplierNm: '',
address : '', orgId: '',
contactPhone : '', orgName: '',
status : 1, customerLevel: "1",
}, contactName: '',
rules: address: '',
{ contactPhone: '',
supplierCd: [ status: 1,
{ },
required: true, rules: {
message: '请输入客户编码', supplierCd: [{
trigger: 'blur' required: true,
}, message: '请输入客户编码',
], trigger: 'blur'
supplierNm: [ }, ],
{ supplierNm: [{
required: true, required: true,
message: '请输入客户名称', message: '请输入客户名称',
trigger: 'blur' trigger: 'blur'
}, }, ],
], contactPhone: [],
contactPhone: [ },
], customerLevelOptions: [{
}, "fullName": "一级",
customerLevelOptions:[{"fullName":"一级","id":"1"},{"fullName":"二级","id":"2"},{"fullName":"三级","id":"3"}], "id": "1"
}, {
} "fullName": "二级",
}, "id": "2"
computed: {}, }, {
watch: {}, "fullName": "三级",
created() { "id": "3"
}, }],
mounted() {},
methods: {
clearData(data){
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/customer/Customer/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/customer/Customer',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/customer/Customer/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.status = parseInt(_data.status)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.status = parseInt( _dataAll.status)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/customer/Customer/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/customer/Customer',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/customer/Customer/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.status = parseInt(_data.status)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.status = parseInt(_dataAll.status)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,277 +1,321 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="客户编码"> <el-form-item label="客户编码">
<el-input v-model="query.supplierCd" placeholder="请输入" clearable> </el-input> <el-input v-model="query.supplierCd" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="客户名称"> <el-form-item label="客户名称">
<el-input v-model="query.supplierNm" placeholder="请输入" clearable> </el-input> <el-input v-model="query.supplierNm" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="supplierCd" label="客户编码" width="0" align="left" @selection-change="handleSelectionChange">
sortable="custom" /> <el-table-column prop="supplierCd" label="客户编码" width="0" align="left" sortable="custom" />
<el-table-column prop="supplierNm" label="客户名称" width="0" align="left" <el-table-column prop="supplierNm" label="客户名称" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column prop="orgId" label="所属公司ID" width="0" align="left" sortable="custom" />
<el-table-column prop="orgId" label="所属公司ID" width="0" align="left" <el-table-column prop="orgName" label="公司代码" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column label="客户等级" width="0" prop="customerLevel" algin="left" sortable="custom">
<el-table-column prop="orgName" label="公司代码" width="0" align="left" <template slot-scope="scope">
sortable="custom" /> {{ scope.row.customerLevel | dynamicText(customerLevelOptions) }}
<el-table-column label="客户等级" width="0" prop="customerLevel" algin="left" </template>
sortable="custom" > </el-table-column>
<template slot-scope="scope"> <el-table-column prop="contactName" label="联系人" width="0" align="left" sortable="custom" />
{{ scope.row.customerLevel | dynamicText(customerLevelOptions) }} <el-table-column prop="address" label="地址" width="0" align="left" sortable="custom" />
</template> <el-table-column prop="contactPhone" label="电话" width="0" align="left" sortable="custom" />
</el-table-column> <el-table-column prop="status" label="是否启用" width="0" align="left" />
<el-table-column prop="contactName" label="联系人" width="0" align="left" <el-table-column label="操作" fixed="right" width="150">
sortable="custom" /> <template slot-scope="scope">
<el-table-column prop="address" label="地址" width="0" align="left" <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
sortable="custom" /> </el-button>
<el-table-column prop="contactPhone" label="电话" width="0" align="left" <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
sortable="custom" /> </el-button>
<el-table-column prop="status" label="是否启用" width="0" align="left" <el-button type="text" @click="goDetail(scope.row.id)">
/> </el-button>
<el-table-column label="操作" fixed="right" </template>
width="150" > </el-table-column>
<template slot-scope="scope"> </JNPF-table>
<el-button type="text" <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
@click="addOrUpdateHandle(scope.row.id)" >编辑 @pagination="initData" />
</el-button> </div>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> </div>
</el-button> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<el-button type="text" <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
@click="goDetail(scope.row.id)">详情 <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</el-button> </div>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
supplierCd:undefined, data() {
supplierNm:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', supplierCd: undefined,
label: 'fullName', supplierNm: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "supplierCd", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'supplierCd', label: '客户编码'}, sidx: "supplierCd",
{prop: 'supplierNm', label: '客户名称'}, },
{prop: 'orgId', label: '所属公司ID'}, formVisible: false,
{prop: 'orgName', label: '公司代码'}, exportBoxVisible: false,
{prop: 'customerLevel', label: '客户等级'}, columnList: [{
{prop: 'contactName', label: '联系人'}, prop: 'supplierCd',
{prop: 'address', label: '地址'}, label: '客户编码'
{prop: 'contactPhone', label: '电话'}, },
{prop: 'status', label: '是否启用'}, {
], prop: 'supplierNm',
customerLevelOptions:[{"fullName":"一级","id":"1"},{"fullName":"二级","id":"2"},{"fullName":"三级","id":"3"}], label: '客户名称'
customerLevelProps:{"label":"fullName","value":"id"}, },
} {
}, prop: 'orgId',
computed: { label: '所属公司ID'
menuId() { },
return this.$route.meta.modelId || '' {
} prop: 'orgName',
}, label: '公司代码'
created() { },
this.initData() {
}, prop: 'customerLevel',
methods: { label: '客户等级'
goDetail(id){ },
this.detailVisible = true {
this.$nextTick(() => { prop: 'contactName',
this.$refs.Detail.init(id) label: '联系人'
}) },
}, {
sortChange({column, prop, order}) { prop: 'address',
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' label: '地址'
this.listQuery.sidx = !order ? '' : prop },
this.initData() {
}, prop: 'contactPhone',
initData() { label: '电话'
this.listLoading = true; },
let _query = { {
...this.listQuery, prop: 'status',
...this.query, label: '是否启用'
menuId:this.menuId },
}; ],
request({ customerLevelOptions: [{
url: `/api/customer/Customer/getList`, "fullName": "一级",
method: 'post', "id": "1"
data: _query }, {
}).then(res => { "fullName": "二级",
var _list =[]; "id": "2"
for(let i=0;i<res.data.list.length;i++){ }, {
let _data = res.data.list[i]; "fullName": "三级",
_list.push(_data) "id": "3"
} }],
this.list = _list customerLevelProps: {
this.total = res.data.pagination.total "label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/customer/Customer/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/customer/Customer/${id}`, url: `/api/customer/Customer/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/customer/Customer/batchRemove/${ids}`,
url: `/api/customer/Customer/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/customer/Customer/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/customer/Customer/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "supplierCd", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "supplierCd",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,337 +1,359 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="1000px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="12">
<el-col :span="12" > <el-form-item label="物料编码" prop="itemCode">
<el-form-item label="物料编码" <el-input v-model="dataForm.itemCode" placeholder="请输入" clearable :style='{"width":"100%"}'>
prop="itemCode" >
<el-input v-model="dataForm.itemCode"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="物料名称" <el-form-item label="物料名称" prop="description">
prop="description" > <el-input v-model="dataForm.description" placeholder="请输入" clearable
<el-input v-model="dataForm.description" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="库存组织代码" <el-form-item label="库存组织代码" prop="organizationCode">
prop="organizationCode" > <el-input v-model="dataForm.organizationCode" placeholder="请输入" clearable
<el-input v-model="dataForm.organizationCode" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="主单位代码" <el-form-item label="主单位代码" prop="primaryUomCode">
prop="primaryUomCode" > <el-input v-model="dataForm.primaryUomCode" placeholder="请输入" clearable
<el-input v-model="dataForm.primaryUomCode" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="主单位名称" <el-form-item label="主单位名称" prop="primaryUnitOmeasure">
prop="primaryUnitOmeasure" > <el-input v-model="dataForm.primaryUnitOmeasure" placeholder="请输入" clearable
<el-input v-model="dataForm.primaryUnitOmeasure" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="是否可采购" <el-form-item label="是否可采购" prop="purchaseFlag">
prop="purchaseFlag" > <el-select v-model="dataForm.purchaseFlag" placeholder="请选择" clearable
<el-select v-model="dataForm.purchaseFlag" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in purchaseFlagOptions" :key="index"
<el-option v-for="(item, index) in purchaseFlagOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="是否可销售 " <el-form-item label="是否可销售 " prop="salesFlag">
prop="salesFlag" > <el-select v-model="dataForm.salesFlag" placeholder="请选择" clearable
<el-select v-model="dataForm.salesFlag" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in salesFlagOptions" :key="index" :label="item.fullName"
<el-option v-for="(item, index) in salesFlagOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="默认出库区" <el-form-item label="默认出库区" prop="outArea">
prop="outArea" > <relationForm v-model="dataForm.outArea" placeholder="请选择" clearable field="outArea"
<relationForm v-model="dataForm.outArea" modelId="294012196529150981" :columnOptions="outAreacolumnOptions"
placeholder="请选择" clearable field="outArea" modelId ="294012196529150981" :columnOptions="outAreacolumnOptions" relationField="comInputField102" > relationField="comInputField102">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="默认入库区" <el-form-item label="默认入库区" prop="inArea">
prop="inArea" > <relationForm v-model="dataForm.inArea" placeholder="请选择" clearable field="inArea"
<relationForm v-model="dataForm.inArea" modelId="294012196529150981" :columnOptions="inAreacolumnOptions"
placeholder="请选择" clearable field="inArea" modelId ="294012196529150981" :columnOptions="inAreacolumnOptions" relationField="comInputField102" > relationField="comInputField102">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="创建人名称" <el-form-item label="创建人名称" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="创建时间" <el-form-item label="创建时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="修改人名称" <el-form-item label="修改人名称" prop="lastmodifyusername">
prop="lastmodifyusername" > <el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable
<el-input v-model="dataForm.lastmodifyusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="修改时间" <el-form-item label="修改时间" prop="lastmodifytime">
prop="lastmodifytime" > <el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.lastmodifytime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="生效状态" <el-form-item label="生效状态" prop="effectiveStatus">
prop="effectiveStatus" > <el-select v-model="dataForm.effectiveStatus" placeholder="请选择" clearable
<el-select v-model="dataForm.effectiveStatus" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in effectiveStatusOptions" :key="index"
<el-option v-for="(item, index) in effectiveStatusOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="处理类型" <el-form-item label="处理类型" prop="processingType">
prop="processingType" > <el-select v-model="dataForm.processingType" placeholder="请选择" clearable
<el-select v-model="dataForm.processingType" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in processingTypeOptions" :key="index"
<el-option v-for="(item, index) in processingTypeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="读取标记" <el-form-item label="读取标记" prop="readTag">
prop="readTag" > <el-select v-model="dataForm.readTag" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.readTag" <el-option v-for="(item, index) in readTagOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in readTagOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="读取时间" <el-form-item label="读取时间" prop="readDate">
prop="readDate" > <el-time-picker v-model="dataForm.readDate" placeholder="请选择" clearable
<el-time-picker v-model="dataForm.readDate" :style='{"width":"100%"}' format="HH:mm:ss" value-format="HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' format="HH:mm:ss" value-format="HH:mm:ss" :picker-options='{"selectableRange":"00:00:00-23:59:59"}'> :picker-options='{"selectableRange":"00:00:00-23:59:59"}'>
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="错误信息" <el-form-item label="错误信息" prop="errorMessage">
prop="errorMessage" > <el-input v-model="dataForm.errorMessage" placeholder="请输入" clearable
<el-input v-model="dataForm.errorMessage" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
itemCode : '', visible: false,
description : '', loading: false,
organizationCode : '', isDetail: false,
primaryUomCode : '', dataForm: {
primaryUnitOmeasure : '', itemCode: '',
purchaseFlag : "", description: '',
salesFlag : "", organizationCode: '',
outArea : "", primaryUomCode: '',
inArea : "", primaryUnitOmeasure: '',
creatorusername : '', purchaseFlag: "",
creatortime : '', salesFlag: "",
lastmodifyusername : '', outArea: "",
lastmodifytime : '', inArea: "",
effectiveStatus : "", creatorusername: '',
processingType : "", creatortime: '',
readTag : "", lastmodifyusername: '',
readDate : '', lastmodifytime: '',
errorMessage : '', effectiveStatus: "",
}, processingType: "",
rules: readTag: "",
{ readDate: '',
itemCode: [ errorMessage: '',
{ },
required: true, rules: {
message: '请输入', itemCode: [{
trigger: 'blur' required: true,
}, message: '请输入',
], trigger: 'blur'
description: [ }, ],
{ description: [{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], },
}, purchaseFlagOptions: [{
purchaseFlagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], "fullName": "Y",
salesFlagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], "id": "Y"
outAreacolumnOptions:[ {"label":"购药人","value":"comInputField102"},], }, {
inAreacolumnOptions:[ {"label":"姓名","value":"comInputField102"},], "fullName": "N",
effectiveStatusOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], "id": "N"
processingTypeOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], }],
readTagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], salesFlagOptions: [{
"fullName": "Y",
} "id": "Y"
}, }, {
computed: {}, "fullName": "N",
watch: {}, "id": "N"
created() { }],
}, outAreacolumnOptions: [{
mounted() {}, "label": "购药人",
methods: { "value": "comInputField102"
clearData(data){ }, ],
for (let key in data) { inAreacolumnOptions: [{
if (data[key] instanceof Array) { "label": "姓名",
data[key] = []; "value": "comInputField102"
} else if (data[key] instanceof Object) { }, ],
this.clearData(data[key]); effectiveStatusOptions: [{
} else { "fullName": "Y",
data[key] = ""; "id": "Y"
} }, {
} "fullName": "N",
}, "id": "N"
init(id, isDetail) { }],
this.dataForm.id = id || 0; processingTypeOptions: [{
this.visible = true; "fullName": "Y",
this.isDetail = isDetail || false; "id": "Y"
this.$nextTick(() => { }, {
this.$refs['elForm'].resetFields(); "fullName": "N",
if(this.dataForm.id){ "id": "N"
this.loading = true }],
request({ readTagOptions: [{
url: '/api/Material/Material/'+this.dataForm.id, "fullName": "Y",
method: 'get' "id": "Y"
}).then(res => { }, {
this.dataInfo(res.data) "fullName": "N",
this.loading = false "id": "N"
}); }],
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/Material/Material',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/Material/Material/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/Material/Material/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/Material/Material',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/Material/Material/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,319 +1,411 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物料编码"> <el-form-item label="物料编码">
<el-input v-model="query.itemCode" placeholder="请输入" clearable> </el-input> <el-input v-model="query.itemCode" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物料名称"> <el-form-item label="物料名称">
<el-input v-model="query.description" placeholder="请输入" clearable> </el-input> <el-input v-model="query.description" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="itemCode" label="物料编码" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="itemCode" label="物料编码" width="0" align="left" />
<el-table-column prop="description" label="物料名称" width="0" align="left" <el-table-column prop="description" label="物料名称" width="0" align="left" />
/> <el-table-column prop="outArea" label="默认出库区" width="0" align="left" />
<el-table-column prop="outArea" label="默认出库区" width="0" align="left" <el-table-column prop="inArea" label="默认入库区" width="0" align="left" />
/> <el-table-column prop="primaryUnitOmeasure" label="主单位名称" width="0" align="left" />
<el-table-column prop="inArea" label="默认入库区" width="0" align="left" <el-table-column label="是否可采购" width="0" prop="purchaseFlag" algin="left">
/> <template slot-scope="scope">
<el-table-column prop="primaryUnitOmeasure" label="主单位名称" width="0" align="left" {{ scope.row.purchaseFlag | dynamicText(purchaseFlagOptions) }}
/> </template>
<el-table-column label="是否可采购" width="0" prop="purchaseFlag" algin="left" </el-table-column>
> <el-table-column label="是否可销售 " width="0" prop="salesFlag" algin="left">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.purchaseFlag | dynamicText(purchaseFlagOptions) }} {{ scope.row.salesFlag | dynamicText(salesFlagOptions) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否可销售 " width="0" prop="salesFlag" algin="left" <el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" />
> <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />
<template slot-scope="scope"> <el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" />
{{ scope.row.salesFlag | dynamicText(salesFlagOptions) }} <el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" />
</template> <el-table-column label="生效状态" width="0" prop="effectiveStatus" algin="left">
</el-table-column> <template slot-scope="scope">
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" {{ scope.row.effectiveStatus | dynamicText(effectiveStatusOptions) }}
/> </template>
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" </el-table-column>
/> <el-table-column label="处理类型" width="0" prop="processingType" algin="left">
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" <template slot-scope="scope">
/> {{ scope.row.processingType | dynamicText(processingTypeOptions) }}
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" </template>
/> </el-table-column>
<el-table-column label="生效状态" width="0" prop="effectiveStatus" algin="left" <el-table-column label="读取标记" width="0" prop="readTag" algin="left">
> <template slot-scope="scope">
<template slot-scope="scope"> {{ scope.row.readTag | dynamicText(readTagOptions) }}
{{ scope.row.effectiveStatus | dynamicText(effectiveStatusOptions) }} </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="readDate" label="读取时间" width="0" align="left" />
<el-table-column label="处理类型" width="0" prop="processingType" algin="left" <el-table-column prop="errorMessage" label="错误信息" width="0" align="left" />
> <el-table-column label="操作" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.processingType | dynamicText(processingTypeOptions) }} <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
</template> </el-button>
</el-table-column> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
<el-table-column label="读取标记" width="0" prop="readTag" algin="left" </el-button>
> </template>
<template slot-scope="scope"> </el-table-column>
{{ scope.row.readTag | dynamicText(readTagOptions) }} </JNPF-table>
</template> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
</el-table-column> @pagination="initData" />
<el-table-column prop="readDate" label="读取时间" width="0" align="left" </div>
/> </div>
<el-table-column prop="errorMessage" label="错误信息" width="0" align="left" <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
/> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<el-table-column label="操作" fixed="right" <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
width="100" > </div>
<template slot-scope="scope">
<el-button type="text"
@click="addOrUpdateHandle(scope.row.id)" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
itemCode:undefined, data() {
description:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', itemCode: undefined,
label: 'fullName', description: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'itemCode', label: '物料编码'}, sidx: "",
{prop: 'description', label: '物料名称'}, },
{prop: 'outArea', label: '默认出库区'}, formVisible: false,
{prop: 'inArea', label: '默认入库区'}, exportBoxVisible: false,
{prop: 'primaryUnitOmeasure', label: '主单位名称'}, columnList: [{
{prop: 'purchaseFlag', label: '是否可采购'}, prop: 'itemCode',
{prop: 'salesFlag', label: '是否可销售 '}, label: '物料编码'
{prop: 'creatorusername', label: '创建人名称'}, },
{prop: 'creatortime', label: '创建时间'}, {
{prop: 'lastmodifyusername', label: '修改人名称'}, prop: 'description',
{prop: 'lastmodifytime', label: '修改时间'}, label: '物料名称'
{prop: 'effectiveStatus', label: '生效状态'}, },
{prop: 'processingType', label: '处理类型'}, {
{prop: 'readTag', label: '读取标记'}, prop: 'outArea',
{prop: 'readDate', label: '读取时间'}, label: '默认出库区'
{prop: 'errorMessage', label: '错误信息'}, },
], {
purchaseFlagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], prop: 'inArea',
purchaseFlagProps:{"label":"fullName","value":"id"}, label: '默认入库区'
salesFlagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], },
salesFlagProps:{"label":"fullName","value":"id"}, {
effectiveStatusOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], prop: 'primaryUnitOmeasure',
effectiveStatusProps:{"label":"fullName","value":"id"}, label: '主单位名称'
processingTypeOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], },
processingTypeProps:{"label":"fullName","value":"id"}, {
readTagOptions:[{"fullName":"Y","id":"Y"},{"fullName":"N","id":"N"}], prop: 'purchaseFlag',
readTagProps:{"label":"fullName","value":"id"}, label: '是否可采购'
} },
}, {
computed: { prop: 'salesFlag',
menuId() { label: '是否可销售 '
return this.$route.meta.modelId || '' },
} {
}, prop: 'creatorusername',
created() { label: '创建人名称'
this.initData() },
}, {
methods: { prop: 'creatortime',
goDetail(id){ label: '创建时间'
this.detailVisible = true },
this.$nextTick(() => { {
this.$refs.Detail.init(id) prop: 'lastmodifyusername',
}) label: '修改人名称'
}, },
sortChange({column, prop, order}) { {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' prop: 'lastmodifytime',
this.listQuery.sidx = !order ? '' : prop label: '修改时间'
this.initData() },
}, {
initData() { prop: 'effectiveStatus',
this.listLoading = true; label: '生效状态'
let _query = { },
...this.listQuery, {
...this.query, prop: 'processingType',
menuId:this.menuId label: '处理类型'
}; },
request({ {
url: `/api/Material/Material/getList`, prop: 'readTag',
method: 'post', label: '读取标记'
data: _query },
}).then(res => { {
var _list =[]; prop: 'readDate',
for(let i=0;i<res.data.list.length;i++){ label: '读取时间'
let _data = res.data.list[i]; },
_list.push(_data) {
} prop: 'errorMessage',
this.list = _list label: '错误信息'
this.total = res.data.pagination.total },
],
purchaseFlagOptions: [{
"fullName": "Y",
"id": "Y"
}, {
"fullName": "N",
"id": "N"
}],
purchaseFlagProps: {
"label": "fullName",
"value": "id"
},
salesFlagOptions: [{
"fullName": "Y",
"id": "Y"
}, {
"fullName": "N",
"id": "N"
}],
salesFlagProps: {
"label": "fullName",
"value": "id"
},
effectiveStatusOptions: [{
"fullName": "Y",
"id": "Y"
}, {
"fullName": "N",
"id": "N"
}],
effectiveStatusProps: {
"label": "fullName",
"value": "id"
},
processingTypeOptions: [{
"fullName": "Y",
"id": "Y"
}, {
"fullName": "N",
"id": "N"
}],
processingTypeProps: {
"label": "fullName",
"value": "id"
},
readTagOptions: [{
"fullName": "Y",
"id": "Y"
}, {
"fullName": "N",
"id": "N"
}],
readTagProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/Material/Material/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/Material/Material/${id}`, url: `/api/Material/Material/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/Material/Material/batchRemove/${ids}`,
url: `/api/Material/Material/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/Material/Material/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/Material/Material/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,245 +1,228 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="800px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="24">
<el-col :span="24" > <el-form-item label="设备名称" prop="mName">
<el-form-item label="设备名称" <el-input v-model="dataForm.mName" placeholder="请输入" clearable :style='{"width":"100%"}'>
prop="mName" >
<el-input v-model="dataForm.mName"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="设备序列号" <el-form-item label="设备序列号" prop="serialnumber">
prop="serialnumber" > <el-input v-model="dataForm.serialnumber" placeholder="请输入" clearable
<el-input v-model="dataForm.serialnumber" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="ip地址" <el-form-item label="ip地址" prop="ip">
prop="ip" > <el-input v-model="dataForm.ip" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.ip"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="端口号" <el-form-item label="端口号" prop="port">
prop="port" > <el-input v-model="dataForm.port" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.port"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="账号" <el-form-item label="账号" prop="account">
prop="account" > <el-input v-model="dataForm.account" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.account"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="密码" <el-form-item label="密码" prop="password">
prop="password" > <el-input v-model="dataForm.password" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.password"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建人名称" <el-form-item label="创建人名称" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建时间" <el-form-item label="创建时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改人名称" <el-form-item label="修改人名称" prop="lastmodifyusername">
prop="lastmodifyusername" > <el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable
<el-input v-model="dataForm.lastmodifyusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改时间" <el-form-item label="修改时间" prop="lastmodifytime">
prop="lastmodifytime" > <el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.lastmodifytime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
mName : '', visible: false,
serialnumber : '', loading: false,
ip : '', isDetail: false,
port : '', dataForm: {
account : '', mName: '',
password : '', serialnumber: '',
creatorusername : '', ip: '',
creatortime : '', port: '',
lastmodifyusername : '', account: '',
lastmodifytime : '', password: '',
}, creatorusername: '',
rules: creatortime: '',
{ lastmodifyusername: '',
mName: [ lastmodifytime: '',
{ },
required: true, rules: {
message: '请输入', mName: [{
trigger: 'blur' required: true,
}, message: '请输入',
], trigger: 'blur'
serialnumber: [ }, ],
{ serialnumber: [{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], },
},
}
},
computed: {},
watch: {},
created() {
},
mounted() {},
methods: {
clearData(data){
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/monitormanage/Monitormanage/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/monitormanage/Monitormanage',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/monitormanage/Monitormanage/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/monitormanage/Monitormanage/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/monitormanage/Monitormanage',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/monitormanage/Monitormanage/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,265 +1,300 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="设备名称"> <el-form-item label="设备名称">
<el-input v-model="query.mName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.mName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="mName" label="设备名称" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="mName" label="设备名称" width="0" align="left" />
<el-table-column prop="serialnumber" label="设备序列号" width="0" align="left" <el-table-column prop="serialnumber" label="设备序列号" width="0" align="left" />
/> <el-table-column prop="ip" label="ip地址" width="0" align="left" />
<el-table-column prop="ip" label="ip地址" width="0" align="left" <el-table-column prop="port" label="端口号" width="0" align="left" />
/> <el-table-column prop="account" label="账号" width="0" align="left" />
<el-table-column prop="port" label="端口号" width="0" align="left" <el-table-column prop="password" label="密码" width="0" align="left" />
/> <el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" />
<el-table-column prop="account" label="账号" width="0" align="left" <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />
/> <el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" />
<el-table-column prop="password" label="密码" width="0" align="left" <el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" />
/> <el-table-column label="操作" fixed="right" width="100">
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" <template slot-scope="scope">
/> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" </el-button>
/> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" </el-button>
/> </template>
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" </el-table-column>
/> </JNPF-table>
<el-table-column label="操作" fixed="right" <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
width="100" > @pagination="initData" />
<template slot-scope="scope"> </div>
<el-button type="text" </div>
@click="addOrUpdateHandle(scope.row.id)" >编辑 <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
</el-button> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</el-button> </div>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
mName:undefined, data() {
}, return {
treeProps: { detailVisible: false,
children: 'children', query: {
label: 'fullName', mName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'mName', label: '设备名称'}, sidx: "",
{prop: 'serialnumber', label: '设备序列号'}, },
{prop: 'ip', label: 'ip地址'}, formVisible: false,
{prop: 'port', label: '端口号'}, exportBoxVisible: false,
{prop: 'account', label: '账号'}, columnList: [{
{prop: 'password', label: '密码'}, prop: 'mName',
{prop: 'creatorusername', label: '创建人名称'}, label: '设备名称'
{prop: 'creatortime', label: '创建时间'}, },
{prop: 'lastmodifyusername', label: '修改人名称'}, {
{prop: 'lastmodifytime', label: '修改时间'}, prop: 'serialnumber',
], label: '设备序列号'
} },
}, {
computed: { prop: 'ip',
menuId() { label: 'ip地址'
return this.$route.meta.modelId || '' },
} {
}, prop: 'port',
created() { label: '端口号'
this.initData() },
}, {
methods: { prop: 'account',
goDetail(id){ label: '账号'
this.detailVisible = true },
this.$nextTick(() => { {
this.$refs.Detail.init(id) prop: 'password',
}) label: '密码'
}, },
sortChange({column, prop, order}) { {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' prop: 'creatorusername',
this.listQuery.sidx = !order ? '' : prop label: '创建人名称'
this.initData() },
}, {
initData() { prop: 'creatortime',
this.listLoading = true; label: '创建时间'
let _query = { },
...this.listQuery, {
...this.query, prop: 'lastmodifyusername',
menuId:this.menuId label: '修改人名称'
}; },
request({ {
url: `/api/monitormanage/Monitormanage/getList`, prop: 'lastmodifytime',
method: 'post', label: '修改时间'
data: _query },
}).then(res => { ],
var _list =[]; }
for(let i=0;i<res.data.list.length;i++){ },
let _data = res.data.list[i]; computed: {
_list.push(_data) menuId() {
} return this.$route.meta.modelId || ''
this.list = _list }
this.total = res.data.pagination.total },
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/monitormanage/Monitormanage/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/monitormanage/Monitormanage/${id}`, url: `/api/monitormanage/Monitormanage/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/monitormanage/Monitormanage/batchRemove/${ids}`,
url: `/api/monitormanage/Monitormanage/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/monitormanage/Monitormanage/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/monitormanage/Monitormanage/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,491 +1,480 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="800px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="12">
<el-col :span="12" > <el-form-item label="物料编码" prop="materialCode">
<el-form-item label="物料编码" <relationForm v-model="dataForm.materialCode" placeholder="请选择" clearable
prop="materialCode" > field="materialCode" modelId="294090217084722181"
<relationForm v-model="dataForm.materialCode" :columnOptions="materialCodecolumnOptions" relationField="selectField121">
placeholder="请选择" clearable field="materialCode" modelId ="294090217084722181" :columnOptions="materialCodecolumnOptions" relationField="selectField121" >
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="物料名称" <el-form-item label="物料名称" prop="materialName">
prop="materialName" > <el-input v-model="dataForm.materialName" placeholder="请输入" clearable
<el-input v-model="dataForm.materialName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="销售合同" <el-form-item label="销售合同" prop="salesName">
prop="salesName" > <relationForm v-model="dataForm.salesName" placeholder="请选择" clearable field="salesName"
<relationForm v-model="dataForm.salesName" modelId="294090217084722181" :columnOptions="salesNamecolumnOptions"
placeholder="请选择" clearable field="salesName" modelId ="294090217084722181" :columnOptions="salesNamecolumnOptions" relationField="selectField121" > relationField="selectField121">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="客户名称" <el-form-item label="客户名称" prop="customerName">
prop="customerName" > <el-input v-model="dataForm.customerName" placeholder="请输入" clearable
<el-input v-model="dataForm.customerName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="是否垫资" <el-form-item label="是否垫资" prop="advance">
prop="advance" > <el-select v-model="dataForm.advance" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.advance" <el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="销售价格" <el-form-item label="销售价格" prop="salesPrice">
prop="salesPrice" > <el-input-number v-model="dataForm.salesPrice" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.salesPrice"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="运输方式" <el-form-item label="运输方式" prop="transportType">
prop="transportType" > <el-select v-model="dataForm.transportType" placeholder="请选择" clearable
<el-select v-model="dataForm.transportType" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in transportTypeOptions" :key="index"
<el-option v-for="(item, index) in transportTypeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="运费" <el-form-item label="运费" prop="departmentId">
prop="departmentId" > <el-input-number v-model="dataForm.departmentId" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.departmentId"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="车号" <el-form-item label="车号" prop="licenseNo">
prop="licenseNo" > <relationForm v-model="dataForm.licenseNo" placeholder="请选择" clearable field="licenseNo"
<relationForm v-model="dataForm.licenseNo" modelId="294090217084722181" :columnOptions="licenseNocolumnOptions"
placeholder="请选择" clearable field="licenseNo" modelId ="294090217084722181" :columnOptions="licenseNocolumnOptions" relationField="selectField122" > relationField="selectField122">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="业务员名称" <el-form-item label="业务员名称" prop="businessName">
prop="businessName" > <el-input v-model="dataForm.businessName" placeholder="请输入" clearable
<el-input v-model="dataForm.businessName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="磅单图片" <el-form-item label="磅单图片" prop="poundPictures">
prop="poundPictures" > <JNPF-UploadImg v-model="dataForm.poundPictures" :fileSize="500" sizeUnit="MB" :limit="9">
<JNPF-UploadImg v-model="dataForm.poundPictures"
:fileSize="500" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="皮重" <el-form-item label="皮重" prop="tareWeight">
prop="tareWeight" > <el-input-number v-model="dataForm.tareWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.tareWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="毛重" <el-form-item label="毛重" prop="grossWeight">
prop="grossWeight" > <el-input-number v-model="dataForm.grossWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.grossWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="扣重" <el-form-item label="扣重" prop="buckleWeight">
prop="buckleWeight" > <el-input-number v-model="dataForm.buckleWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.buckleWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="净重" <el-form-item label="净重" prop="netWeight">
prop="netWeight" > <el-input-number v-model="dataForm.netWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.netWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="备注" <el-form-item label="备注" prop="remark">
prop="remark" > <el-input v-model="dataForm.remark" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.remark"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="司机名称" <el-form-item label="司机名称" prop="driverName">
prop="driverName" > <el-input v-model="dataForm.driverName" placeholder="请输入" clearable
<el-input v-model="dataForm.driverName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="车辆图片" <el-form-item label="车辆图片" prop="vehiclePictures">
prop="vehiclePictures" > <JNPF-UploadImg v-model="dataForm.vehiclePictures" :fileSize="500" sizeUnit="MB" :limit="9">
<JNPF-UploadImg v-model="dataForm.vehiclePictures"
:fileSize="500" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="制单人" <el-form-item label="制单人" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="供应商名称" <el-form-item label="供应商名称" prop="supplierName">
prop="supplierName" > <el-input v-model="dataForm.supplierName" placeholder="请输入" clearable
<el-input v-model="dataForm.supplierName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="采购合同" <el-form-item label="采购合同" prop="purchaseName">
prop="purchaseName" > <relationForm v-model="dataForm.purchaseName" placeholder="请选择" clearable
<relationForm v-model="dataForm.purchaseName" field="purchaseName" modelId="294090217084722181"
placeholder="请选择" clearable field="purchaseName" modelId ="294090217084722181" :columnOptions="purchaseNamecolumnOptions" relationField="selectField121" > :columnOptions="purchaseNamecolumnOptions" relationField="selectField121">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="单位" <el-form-item label="单位" prop="unit">
prop="unit" > <el-select v-model="dataForm.unit" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.unit" <el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="结算重量" <el-form-item label="结算重量" prop="settlement">
prop="settlement" > <el-input v-model="dataForm.settlement" placeholder="请输入" clearable
<el-input v-model="dataForm.settlement" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="采购单价" <el-form-item label="采购单价" prop="purchasePrice">
prop="purchasePrice" > <el-input v-model="dataForm.purchasePrice" placeholder="请输入" clearable
<el-input v-model="dataForm.purchasePrice" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="进项票日期" <el-form-item label="进项票日期" prop="inputDate">
prop="inputDate" > <el-date-picker v-model="dataForm.inputDate" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.inputDate" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="销项票日期" <el-form-item label="销项票日期" prop="outputDate">
prop="outputDate" > <el-date-picker v-model="dataForm.outputDate" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.outputDate" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="付款日期" <el-form-item label="付款日期" prop="payDate">
prop="payDate" > <el-date-picker v-model="dataForm.payDate" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.payDate" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="回款日期" <el-form-item label="回款日期" prop="paymentDate">
prop="paymentDate" > <el-date-picker v-model="dataForm.paymentDate" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.paymentDate" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="磅单日期" <el-form-item label="磅单日期" prop="poundDate">
prop="poundDate" > <el-date-picker v-model="dataForm.poundDate" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.poundDate" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
materialCode : "", visible: false,
materialName : '', loading: false,
salesName : "", isDetail: false,
customerName : '', dataForm: {
advance : "", materialCode: "",
salesPrice : '', materialName: '',
transportType : "", salesName: "",
departmentId : 11.225, customerName: '',
licenseNo : "", advance: "",
businessName : '', salesPrice: '',
poundPictures : [], transportType: "",
tareWeight : '', departmentId: 11.225,
grossWeight : '', licenseNo: "",
buckleWeight : '', businessName: '',
netWeight : '', poundPictures: [],
remark : '', tareWeight: '',
driverName : '', grossWeight: '',
vehiclePictures : [], buckleWeight: '',
creatorusername : '', netWeight: '',
supplierName : '', remark: '',
purchaseName : "", driverName: '',
unit : "", vehiclePictures: [],
settlement : '', creatorusername: '',
purchasePrice : '', supplierName: '',
inputDate : '', purchaseName: "",
outputDate : '', unit: "",
payDate : '', settlement: '',
paymentDate : '', purchasePrice: '',
poundDate : '', inputDate: '',
}, outputDate: '',
rules: payDate: '',
{ paymentDate: '',
materialCode: [ poundDate: '',
{ },
required: true, rules: {
message: '请选择', materialCode: [{
trigger: 'change' required: true,
}, message: '请选择',
], trigger: 'change'
salesName: [ }, ],
{ salesName: [{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}, }, ],
], licenseNo: [{
licenseNo: [ required: true,
{ message: '请选择',
required: true, trigger: 'change'
message: '请选择', }, ],
trigger: 'change' poundPictures: [{
}, required: true,
], message: '请至少选择一个',
poundPictures: [ trigger: 'click'
{ }, ],
required: true, tareWeight: [{
message: '请至少选择一个', required: true,
trigger: 'click' message: '数字文本',
}, trigger: ["blur", "change"]
], }, ],
tareWeight: [ grossWeight: [{
{ required: true,
required: true, message: '数字文本',
message: '数字文本', trigger: ["blur", "change"]
trigger: ["blur","change"] }, ],
}, buckleWeight: [{
], required: true,
grossWeight: [ message: '数字文本',
{ trigger: ["blur", "change"]
required: true, }, ],
message: '数字文本', netWeight: [{
trigger: ["blur","change"] required: true,
}, message: '数字文本',
], trigger: ["blur", "change"]
buckleWeight: [ }, ],
{ },
required: true, materialCodecolumnOptions: [{
message: '数字文本', "label": "事件等级",
trigger: ["blur","change"] "value": "selectField121"
}, }, ],
], salesNamecolumnOptions: [{
netWeight: [ "label": "事件等级",
{ "value": "selectField121"
required: true, }, ],
message: '数字文本', advanceOptions: [{
trigger: ["blur","change"] "fullName": "是",
}, "id": "1"
], }, {
}, "fullName": "否",
materialCodecolumnOptions:[ {"label":"事件等级","value":"selectField121"},], "id": "0"
salesNamecolumnOptions:[ {"label":"事件等级","value":"selectField121"},], }],
advanceOptions:[{"fullName":"是","id":"1"},{"fullName":"否","id":"0"}], transportTypeOptions: [{
transportTypeOptions:[{"fullName":"汽运","id":"0"},{"fullName":"船运","id":"1"},{"fullName":"火车","id":"2"}], "fullName": "汽运",
licenseNocolumnOptions:[ {"label":"事件级别","value":"selectField122"},], "id": "0"
purchaseNamecolumnOptions:[ {"label":"事件等级","value":"selectField121"},], }, {
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], "fullName": "船运",
"id": "1"
} }, {
}, "fullName": "火车",
computed: {}, "id": "2"
watch: {}, }],
created() { licenseNocolumnOptions: [{
}, "label": "事件级别",
mounted() {}, "value": "selectField122"
methods: { }, ],
clearData(data){ purchaseNamecolumnOptions: [{
for (let key in data) { "label": "事件等级",
if (data[key] instanceof Array) { "value": "selectField121"
data[key] = []; }, ],
} else if (data[key] instanceof Object) { unitOptions: [{
this.clearData(data[key]); "fullName": "吨",
} else { "id": "0"
data[key] = ""; }, {
} "fullName": "千克",
} "id": "1"
}, }],
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/poundlist/Poundlist/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/poundlist/Poundlist',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/poundlist/Poundlist/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.poundPictures = JSON.stringify(_data.poundPictures)
_data.vehiclePictures = JSON.stringify(_data.vehiclePictures)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.poundPictures = JSON.parse( _dataAll.poundPictures)
_dataAll.vehiclePictures = JSON.parse( _dataAll.vehiclePictures)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/poundlist/Poundlist/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/poundlist/Poundlist',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/poundlist/Poundlist/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.poundPictures = JSON.stringify(_data.poundPictures)
_data.vehiclePictures = JSON.stringify(_data.vehiclePictures)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.poundPictures = JSON.parse(_dataAll.poundPictures)
_dataAll.vehiclePictures = JSON.parse(_dataAll.vehiclePictures)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,318 +1,439 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物料名称"> <el-form-item label="物料名称">
<el-input v-model="query.materialName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.materialName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="licenseNo" label="车号" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="licenseNo" label="车号" width="0" align="left" />
<el-table-column prop="customerName" label="客户名称" width="0" align="left" <el-table-column prop="customerName" label="客户名称" width="0" align="left" />
/> <el-table-column prop="salesName" label="销售合同" width="0" align="left" />
<el-table-column prop="salesName" label="销售合同" width="0" align="left" <el-table-column prop="supplierName" label="供应商名称" width="0" align="left" />
/> <el-table-column prop="purchaseName" label="采购合同" width="0" align="left" />
<el-table-column prop="supplierName" label="供应商名称" width="0" align="left" <el-table-column prop="materialCode" label="物料编码" width="0" align="left" />
/> <el-table-column prop="materialName" label="物料名称" width="0" align="left" />
<el-table-column prop="purchaseName" label="采购合同" width="0" align="left" <el-table-column label="是否垫资" width="0" prop="advance" algin="left">
/> <template slot-scope="scope">
<el-table-column prop="materialCode" label="物料编码" width="0" align="left" {{ scope.row.advance | dynamicText(advanceOptions) }}
/> </template>
<el-table-column prop="materialName" label="物料名称" width="0" align="left" </el-table-column>
/> <el-table-column label="单位" width="0" prop="unit" algin="left">
<el-table-column label="是否垫资" width="0" prop="advance" algin="left" <template slot-scope="scope">
> {{ scope.row.unit | dynamicText(unitOptions) }}
<template slot-scope="scope"> </template>
{{ scope.row.advance | dynamicText(advanceOptions) }} </el-table-column>
</template> <el-table-column prop="grossWeight" label="毛重" width="0" align="left" />
</el-table-column> <el-table-column prop="tareWeight" label="皮重" width="0" align="left" />
<el-table-column label="单位" width="0" prop="unit" algin="left" <el-table-column prop="buckleWeight" label="扣重" width="0" align="left" />
> <el-table-column prop="netWeight" label="净重" width="0" align="left" />
<template slot-scope="scope"> <el-table-column prop="settlement" label="结算重量" width="0" align="left" />
{{ scope.row.unit | dynamicText(unitOptions) }} <el-table-column prop="purchasePrice" label="采购单价" width="0" align="left" />
</template> <el-table-column prop="salesPrice" label="销售价格" width="0" align="left" />
</el-table-column> <el-table-column prop="inputDate" label="进项票日期" width="0" align="left" />
<el-table-column prop="grossWeight" label="毛重" width="0" align="left" <el-table-column prop="outputDate" label="销项票日期" width="0" align="left" />
/> <el-table-column prop="payDate" label="付款日期" width="0" align="left" />
<el-table-column prop="tareWeight" label="皮重" width="0" align="left" <el-table-column prop="paymentDate" label="回款日期" width="0" align="left" />
/> <el-table-column prop="poundDate" label="磅单日期" width="0" align="left" />
<el-table-column prop="buckleWeight" label="扣重" width="0" align="left" <el-table-column prop="businessName" label="业务员" width="0" align="left" />
/> <el-table-column prop="remark" label="备注" width="0" align="left" />
<el-table-column prop="netWeight" label="净重" width="0" align="left" <el-table-column prop="poundPictures" label="磅单图片" width="0" align="left">
/> <template slot-scope="scope">
<el-table-column prop="settlement" label="结算重量" width="0" align="left" <span v-for="(item,index) in JSON.parse(scope.row.poundPictures)" :key="index">
/> <el-popover placement="bottom" trigger="click" width="1000">
<el-table-column prop="purchasePrice" label="采购单价" width="0" align="left" <img :src="`/dev${item.url}`" width="100%" />
/> <img
<el-table-column prop="salesPrice" label="销售价格" width="0" align="left" slot="reference"
/> :src="`/dev${item.url}`"
<el-table-column prop="inputDate" label="进项票日期" width="0" align="left" :alt="`/dev${item.url}`"
/> style="max-height: 70px;max-width: 70px; padding: 5px"
<el-table-column prop="outputDate" label="销项票日期" width="0" align="left" />
/> </el-popover>
<el-table-column prop="payDate" label="付款日期" width="0" align="left" </span>
/> </template>
<el-table-column prop="paymentDate" label="回款日期" width="0" align="left" </el-table-column>
/> <el-table-column prop="vehiclePictures" label="车辆图片" width="0" align="left">
<el-table-column prop="poundDate" label="磅单日期" width="0" align="left" <template slot-scope="scope">
/> <span v-for="(item,index) in JSON.parse(scope.row.vehiclePictures)" :key="index">
<el-table-column prop="businessName" label="业务员名称" width="0" align="left" <el-popover placement="bottom" trigger="click" width="1000">
/> <img :src="`/dev${item.url}`" width="100%" />
<el-table-column prop="remark" label="备注" width="0" align="left" <img
/> slot="reference"
<el-table-column label="操作" fixed="right" :src="`/dev${item.url}`"
width="100" > :alt="`/dev${item.url}`"
<template slot-scope="scope"> style="max-height: 70px;max-width: 70px; padding: 5px"
<el-button type="text" />
@click="addOrUpdateHandle(scope.row.id)" >编辑 </el-popover>
</el-button> </span>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> </template>
</el-button> </el-table-column>
</template> <el-table-column label="操作" fixed="right" width="100">
</el-table-column> <template slot-scope="scope">
</JNPF-table> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> </el-button>
</div> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</div> </el-button>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> </template>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> </el-table-column>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> </JNPF-table>
</div> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
@pagination="initData" />
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
materialName:undefined, data() {
}, return {
treeProps: { detailVisible: false,
children: 'children', query: {
label: 'fullName', materialName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'licenseNo', label: '车号'}, sidx: "",
{prop: 'customerName', label: '客户名称'}, },
{prop: 'salesName', label: '销售合同'}, formVisible: false,
{prop: 'supplierName', label: '供应商名称'}, exportBoxVisible: false,
{prop: 'purchaseName', label: '采购合同'}, columnList: [{
{prop: 'materialCode', label: '物料编码'}, prop: 'licenseNo',
{prop: 'materialName', label: '物料名称'}, label: '车号'
{prop: 'advance', label: '是否垫资'}, },
{prop: 'unit', label: '单位'}, {
{prop: 'grossWeight', label: '毛重'}, prop: 'customerName',
{prop: 'tareWeight', label: '皮重'}, label: '客户名称'
{prop: 'buckleWeight', label: '扣重'}, },
{prop: 'netWeight', label: '净重'}, {
{prop: 'settlement', label: '结算重量'}, prop: 'salesName',
{prop: 'purchasePrice', label: '采购单价'}, label: '销售合同'
{prop: 'salesPrice', label: '销售价格'}, },
{prop: 'inputDate', label: '进项票日期'}, {
{prop: 'outputDate', label: '销项票日期'}, prop: 'supplierName',
{prop: 'payDate', label: '付款日期'}, label: '供应商名称'
{prop: 'paymentDate', label: '回款日期'}, },
{prop: 'poundDate', label: '磅单日期'}, {
{prop: 'businessName', label: '业务员名称'}, prop: 'purchaseName',
{prop: 'remark', label: '备注'}, label: '采购合同'
], },
advanceOptions:[{"fullName":"是","id":"1"},{"fullName":"否","id":"0"}], {
advanceProps:{"label":"fullName","value":"id"}, prop: 'materialCode',
transportTypeOptions:[{"fullName":"汽运","id":"0"},{"fullName":"船运","id":"1"},{"fullName":"火车","id":"2"}], label: '物料编码'
transportTypeProps:{"label":"fullName","value":"id"}, },
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], {
unitProps:{"label":"fullName","value":"id"}, prop: 'materialName',
} label: '物料名称'
}, },
computed: { {
menuId() { prop: 'advance',
return this.$route.meta.modelId || '' label: '是否垫资'
} },
}, {
created() { prop: 'unit',
this.initData() label: '单位'
}, },
methods: { {
goDetail(id){ prop: 'grossWeight',
this.detailVisible = true label: '毛重'
this.$nextTick(() => { },
this.$refs.Detail.init(id) {
}) prop: 'tareWeight',
}, label: '皮重'
sortChange({column, prop, order}) { },
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' {
this.listQuery.sidx = !order ? '' : prop prop: 'buckleWeight',
this.initData() label: '扣重'
}, },
initData() { {
this.listLoading = true; prop: 'netWeight',
let _query = { label: '净重'
...this.listQuery, },
...this.query, {
menuId:this.menuId prop: 'settlement',
}; label: '结算重量'
request({ },
url: `/api/poundlist/Poundlist/getList`, {
method: 'post', prop: 'purchasePrice',
data: _query label: '采购单价'
}).then(res => { },
var _list =[]; {
for(let i=0;i<res.data.list.length;i++){ prop: 'salesPrice',
let _data = res.data.list[i]; label: '销售价格'
_list.push(_data) },
} {
this.list = _list prop: 'inputDate',
this.total = res.data.pagination.total label: '进项票日期'
},
{
prop: 'outputDate',
label: '销项票日期'
},
{
prop: 'payDate',
label: '付款日期'
},
{
prop: 'paymentDate',
label: '回款日期'
},
{
prop: 'poundDate',
label: '磅单日期'
},
{
prop: 'businessName',
label: '业务员名称'
},
{
prop: 'remark',
label: '备注'
},
],
advanceOptions: [{
"fullName": "是",
"id": "1"
}, {
"fullName": "否",
"id": "0"
}],
advanceProps: {
"label": "fullName",
"value": "id"
},
transportTypeOptions: [{
"fullName": "汽运",
"id": "0"
}, {
"fullName": "船运",
"id": "1"
}, {
"fullName": "火车",
"id": "2"
}],
transportTypeProps: {
"label": "fullName",
"value": "id"
},
unitOptions: [{
"fullName": "吨",
"id": "0"
}, {
"fullName": "千克",
"id": "1"
}],
unitProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/poundlist/Poundlist/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/poundlist/Poundlist/${id}`, url: `/api/poundlist/Poundlist/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/poundlist/Poundlist/batchRemove/${ids}`,
url: `/api/poundlist/Poundlist/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/poundlist/Poundlist/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/poundlist/Poundlist/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,467 +1,517 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="1000px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="8">
<el-col :span="8" > <el-form-item label="单据编号" prop="documentno">
<el-form-item label="单据编号" <el-input v-model="dataForm.documentno" placeholder="请输入" clearable
prop="documentno" > :style='{"width":"100%"}'>
<el-input v-model="dataForm.documentno"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="供应商名称" <el-form-item label="供应商名称" prop="suppliername">
prop="suppliername" > <el-input v-model="dataForm.suppliername" placeholder="请输入" clearable
<el-input v-model="dataForm.suppliername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="合同名称" <el-form-item label="合同名称" prop="contractname">
prop="contractname" > <el-input v-model="dataForm.contractname" placeholder="请输入" clearable
<el-input v-model="dataForm.contractname" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="制单人" <el-form-item label="制单人" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="采购部门" <el-form-item label="采购部门" prop="departmentId">
prop="departmentId" > <dep-select v-model="dataForm.departmentId" placeholder="请选择" clearable>
<dep-select v-model="dataForm.departmentId"
placeholder="请选择" clearable >
</dep-select> </dep-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="对方合同号" <el-form-item label="对方合同号" prop="contractno">
prop="contractno" > <el-input v-model="dataForm.contractno" placeholder="请输入" clearable
<el-input v-model="dataForm.contractno" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="数量" <el-form-item label="数量" prop="num">
prop="num" > <el-input-number v-model="dataForm.num" placeholder="数字文本" :step="1"
<el-input-number v-model="dataForm.num" controls-position='right'>
placeholder="数字文本" :step="1" controls-position='right' >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="金额" <el-form-item label="金额" prop="amount">
prop="amount" > <el-input v-model="dataForm.amount" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.amount"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="不含税金额" <el-form-item label="不含税金额" prop="notamount">
prop="notamount" > <el-input v-model="dataForm.notamount" placeholder="请输入" clearable
<el-input v-model="dataForm.notamount" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="币别 " <el-form-item label="币别 " prop="currency">
prop="currency" > <el-select v-model="dataForm.currency" placeholder="请选择" clearable
<el-select v-model="dataForm.currency" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in currencyOptions" :key="index" :label="item.fullName"
<el-option v-for="(item, index) in currencyOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16" > <el-col :span="16">
<el-form-item label="备注" <el-form-item label="备注" prop="remark">
prop="remark" > <el-input v-model="dataForm.remark" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.remark"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="ERP订单号" <el-form-item label="ERP订单号" prop="erpno">
prop="erpno" > <el-input v-model="dataForm.erpno" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.erpno"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="已付款金额" <el-form-item label="已付款金额" prop="payprice">
prop="payprice" > <el-input v-model="dataForm.payprice" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.payprice"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="发票数量" <el-form-item label="发票数量" prop="invoicenum">
prop="invoicenum" > <el-input v-model="dataForm.invoicenum" placeholder="请输入" clearable
<el-input v-model="dataForm.invoicenum" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="发票金额" <el-form-item label="发票金额" prop="invoiceamount">
prop="invoiceamount" > <el-input v-model="dataForm.invoiceamount" placeholder="请输入" clearable
<el-input v-model="dataForm.invoiceamount" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="垫资金额" <el-form-item label="垫资金额" prop="advanceamount">
prop="advanceamount" > <el-input v-model="dataForm.advanceamount" placeholder="请输入" clearable
<el-input v-model="dataForm.advanceamount" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item label="单据状态" <el-form-item label="单据状态" prop="status">
prop="status" > <el-select v-model="dataForm.status" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.status" <el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" > <el-col :span="10">
<el-form-item label="制单时间" <el-form-item label="制单时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-tabs v-model="activebgsnko" tab-position="top" class="mb-20"> <el-tabs v-model="activebgsnko" tab-position="top" class="mb-20">
<el-tab-pane label="磅单明细"> <el-tab-pane label="磅单明细">
<el-col :span="24" > <el-col :span="24">
<el-form-item label-width="0"> <el-form-item label-width="0">
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.purchaseorder_item0List" size='mini' > <el-table :data="dataForm.purchaseorder_item0List" size='mini'>
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column prop="licensenum" label="车牌号"> <el-table-column prop="licensenum" label="车牌号">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.licensenum" <el-input v-model="scope.row.licensenum" placeholder="请输入" clearable
placeholder="请输入" clearable :style='{"width":"100%"}'> :style='{"width":"100%"}'>
</el-input> </el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="materialname" label="物料名称"> <el-table-column prop="materialname" label="物料名称">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.materialname" <el-input v-model="scope.row.materialname" placeholder="请输入"
placeholder="请输入" clearable :style='{"width":"100%"}'> clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="pounttype" label="类型 "> <el-table-column prop="pounttype" label="类型 ">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.pounttype" <el-select v-model="scope.row.pounttype" placeholder="请选择" clearable
placeholder="请选择" clearable :style='{"width":"100%"}'> :style='{"width":"100%"}'>
<el-option v-for="(item, index) in pounttypeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> <el-option v-for="(item, index) in pounttypeOptions"
</el-select> :key="index" :label="item.fullName" :value="item.id"
</template> :disabled="item.disabled"></el-option>
</el-table-column> </el-select>
<el-table-column prop="netweight" label="净重"> </template>
<template slot-scope="scope"> </el-table-column>
<el-input v-model="scope.row.netweight" <el-table-column prop="netweight" label="净重">
placeholder="请输入" clearable :style='{"width":"100%"}'> <template slot-scope="scope">
</el-input> <el-input v-model="scope.row.netweight" placeholder="请输入" clearable
</template> :style='{"width":"100%"}'>
</el-table-column> </el-input>
<el-table-column prop="unit" label="单位"> </template>
<template slot-scope="scope"> </el-table-column>
<el-select v-model="scope.row.unit" <el-table-column prop="unit" label="单位">
placeholder="请选择" clearable :style='{"width":"100%"}'> <template slot-scope="scope">
<el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> <el-select v-model="scope.row.unit" placeholder="请选择" clearable
</el-select> :style='{"width":"100%"}'>
</template> <el-option v-for="(item, index) in unitOptions" :key="index"
</el-table-column> :label="item.fullName" :value="item.id"
<el-table-column prop="advance" label="是否垫资"> :disabled="item.disabled"></el-option>
<template slot-scope="scope"> </el-select>
<el-select v-model="scope.row.advance" </template>
placeholder="请选择" clearable :style='{"width":"100%"}'> </el-table-column>
<el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> <el-table-column prop="advance" label="是否垫资">
</el-select> <template slot-scope="scope">
</template> <el-select v-model="scope.row.advance" placeholder="请选择" clearable
</el-table-column> :style='{"width":"100%"}'>
<el-table-column prop="price" label="单价"> <el-option v-for="(item, index) in advanceOptions" :key="index"
<template slot-scope="scope"> :label="item.fullName" :value="item.id"
<el-input v-model="scope.row.price" :disabled="item.disabled"></el-option>
placeholder="请输入" clearable :style='{"width":"100%"}'> </el-select>
</el-input> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="price" label="单价">
<el-table-column prop="settlement" label="结算重量"> <template slot-scope="scope">
<template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="请输入" clearable
<el-input v-model="scope.row.settlement" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'> </el-input>
</el-input> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="settlement" label="结算重量">
<el-table-column prop="rate" label="税率 "> <template slot-scope="scope">
<template slot-scope="scope"> <el-input v-model="scope.row.settlement" placeholder="请输入" clearable
<el-select v-model="scope.row.rate" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> </el-input>
<el-option v-for="(item, index) in rateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> </template>
</el-select> </el-table-column>
</template> <el-table-column prop="rate" label="税率 ">
</el-table-column> <template slot-scope="scope">
<el-table-column prop="amount" label="金额"> <el-select v-model="scope.row.rate" placeholder="请选择" clearable
<template slot-scope="scope"> :style='{"width":"100%"}'>
<el-input v-model="scope.row.amount" <el-option v-for="(item, index) in rateOptions" :key="index"
placeholder="请输入" clearable :style='{"width":"100%"}'> :label="item.fullName" :value="item.id"
</el-input> :disabled="item.disabled"></el-option>
</template> </el-select>
</el-table-column> </template>
<el-table-column prop="notamount" label="不含税金额"> </el-table-column>
<template slot-scope="scope"> <el-table-column prop="amount" label="金额">
<el-input v-model="scope.row.notamount" <template slot-scope="scope">
placeholder="请输入" clearable :style='{"width":"100%"}'> <el-input v-model="scope.row.amount" placeholder="请输入" clearable
</el-input> :style='{"width":"100%"}'>
</template> </el-input>
</el-table-column> </template>
<el-table-column prop="remark" label="备注"> </el-table-column>
<template slot-scope="scope"> <el-table-column prop="notamount" label="不含税金额">
<el-input v-model="scope.row.remark" <template slot-scope="scope">
placeholder="请输入" clearable :style='{"width":"100%"}'> <el-input v-model="scope.row.notamount" placeholder="请输入" clearable
</el-input> :style='{"width":"100%"}'>
</template> </el-input>
</el-table-column> </template>
<el-table-column label="操作" width="50" > </el-table-column>
<template slot-scope="scope"> <el-table-column prop="remark" label="备注">
<el-button size="mini" type="text" class="JNPF-table-delBtn" @click="delpurchaseorder_item0List(scope.$index)"></el-button> <template slot-scope="scope">
</template> <el-input v-model="scope.row.remark" placeholder="请输入" clearable
</el-table-column> :style='{"width":"100%"}'>
</el-table> </el-input>
<div class="table-actions" @click="addpurchaseorder_item0List()"> </template>
<el-button type="text" icon="el-icon-plus">添加</el-button> </el-table-column>
</div> <el-table-column label="操作" width="50">
</el-form-item> <template slot-scope="scope">
</el-col> <el-button size="mini" type="text" class="JNPF-table-delBtn"
</el-tab-pane > @click="delpurchaseorder_item0List(scope.$index)">删除</el-button>
</el-tabs> </template>
</el-col> </el-table-column>
</template> </el-table>
</el-form> <div class="table-actions" @click="addpurchaseorder_item0List()">
</el-row> <el-button type="text" icon="el-icon-plus">添加</el-button>
<span slot="footer" class="dialog-footer"> </div>
<el-button @click="visible = false"> </el-button> </el-form-item>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> </el-col>
</span> </el-tab-pane>
</el-dialog> </el-tabs>
</el-col>
</template>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span>
</el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
documentno : '', visible: false,
suppliername : '', loading: false,
contractname : '', isDetail: false,
creatorusername : '', dataForm: {
departmentId : '', documentno: '',
contractno : '', suppliername: '',
num : '', contractname: '',
amount : '', creatorusername: '',
notamount : '', departmentId: '',
currency : "", contractno: '',
remark : '', num: '',
erpno : '', amount: '',
payprice : '', notamount: '',
invoicenum : '', currency: "",
invoiceamount : '', remark: '',
advanceamount : '', erpno: '',
status : "", payprice: '',
creatortime : '', invoicenum: '',
purchaseorder_item0List:[], invoiceamount: '',
}, advanceamount: '',
activebgsnko:'0', status: "",
rules: creatortime: '',
{ purchaseorder_item0List: [],
}, },
currencyOptions:[{"fullName":"人民币","id":"0"},{"fullName":"美元","id":"1"},{"fullName":"英镑","id":"2"}], activebgsnko: '0',
statusOptions:[{"fullName":"已保存","id":"0"},{"fullName":"开票中","id":"1"},{"fullName":"付款申请","id":"2"},{"fullName":"待付款","id":"3"},{"fullName":"付款中","id":"4"},{"fullName":"归档","id":"5"}], rules: {},
currencyOptions: [{
"fullName": "人民币",
"id": "0"
}, {
"fullName": "美元",
"id": "1"
}, {
"fullName": "英镑",
"id": "2"
}],
statusOptions: [{
"fullName": "已保存",
"id": "0"
}, {
"fullName": "开票中",
"id": "1"
}, {
"fullName": "付款申请",
"id": "2"
}, {
"fullName": "待付款",
"id": "3"
}, {
"fullName": "付款中",
"id": "4"
}, {
"fullName": "归档",
"id": "5"
}],
pounttypeOptions:[{"fullName":"贸易","id":"0"},{"fullName":"其他","id":"1"}], pounttypeOptions: [{
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], "fullName": "贸易",
advanceOptions:[{"fullName":"是","id":"1"},{"fullName":"否","id":"0"}], "id": "0"
rateOptions:[{"fullName":"13","id":"0"},{"fullName":"9","id":"1"},{"fullName":"6","id":"2"},{"fullName":"5","id":"3"},{"fullName":"3","id":"4"},{"fullName":"0","id":"5"}], }, {
} "fullName": "其他",
}, "id": "1"
computed: {}, }],
watch: {}, unitOptions: [{
created() { "fullName": "吨",
}, "id": "0"
mounted() {}, }, {
methods: { "fullName": "千克",
purchaseorder_item0Exist() { "id": "1"
}],
advanceOptions: [{
"fullName": "是",
"id": "1"
}, {
"fullName": "否",
"id": "0"
}],
rateOptions: [{
"fullName": "13",
"id": "0"
}, {
"fullName": "9",
"id": "1"
}, {
"fullName": "6",
"id": "2"
}, {
"fullName": "5",
"id": "3"
}, {
"fullName": "3",
"id": "4"
}, {
"fullName": "0",
"id": "5"
}],
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
purchaseorder_item0Exist() {
let isOk = true; let isOk = true;
for(let i=0;i<this.dataForm.purchaseorder_item0List.length;i++){ for (let i = 0; i < this.dataForm.purchaseorder_item0List.length; i++) {
const e = this.dataForm.purchaseorder_item0List[i]; const e = this.dataForm.purchaseorder_item0List[i];
} }
return isOk; return isOk;
}, },
clearData(data){ clearData(data) {
for (let key in data) { for (let key in data) {
if (data[key] instanceof Array) { if (data[key] instanceof Array) {
data[key] = []; data[key] = [];
} else if (data[key] instanceof Object) { } else if (data[key] instanceof Object) {
this.clearData(data[key]); this.clearData(data[key]);
} else { } else {
data[key] = ""; data[key] = "";
} }
} }
}, },
init(id, isDetail) { init(id, isDetail) {
this.dataForm.id = id || 0; this.dataForm.id = id || 0;
this.visible = true; this.visible = true;
this.isDetail = isDetail || false; this.isDetail = isDetail || false;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['elForm'].resetFields(); this.$refs['elForm'].resetFields();
if(this.dataForm.id){ if (this.dataForm.id) {
this.loading = true this.loading = true
request({ request({
url: '/api/purchaseorder/Purchaseorder/'+this.dataForm.id, url: '/api/purchaseorder/Purchaseorder/' + this.dataForm.id,
method: 'get' method: 'get'
}).then(res => { }).then(res => {
this.dataInfo(res.data) this.dataInfo(res.data)
this.loading = false this.loading = false
}); });
}else{ } else {
this.clearData(this.dataForm) this.clearData(this.dataForm)
} }
}); });
this.$store.commit('generator/UPDATE_RELATION_DATA', {}) this.$store.commit('generator/UPDATE_RELATION_DATA', {})
}, },
// //
dataFormSubmit() { dataFormSubmit() {
this.$refs['elForm'].validate((valid) => { this.$refs['elForm'].validate((valid) => {
if (valid) { if (valid) {
if (!this.purchaseorder_item0Exist()) return if (!this.purchaseorder_item0Exist()) return
this.request() this.request()
} }
}) })
}, },
request() { request() {
var _data =this.dataList() var _data = this.dataList()
if (!this.dataForm.id) { if (!this.dataForm.id) {
request({ request({
url: '/api/purchaseorder/Purchaseorder', url: '/api/purchaseorder/Purchaseorder',
method: 'post', method: 'post',
data: _data data: _data
}).then((res) => { }).then((res) => {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success', type: 'success',
duration: 1000, duration: 1000,
onClose: () => { onClose: () => {
this.visible = false this.visible = false
this.$emit('refresh', true) this.$emit('refresh', true)
} }
}) })
}) })
}else{ } else {
request({ request({
url: '/api/purchaseorder/Purchaseorder/'+this.dataForm.id, url: '/api/purchaseorder/Purchaseorder/' + this.dataForm.id,
method: 'PUT', method: 'PUT',
data: _data data: _data
}).then((res) => { }).then((res) => {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success', type: 'success',
duration: 1000, duration: 1000,
onClose: () => { onClose: () => {
this.visible = false this.visible = false
this.$emit('refresh', true) this.$emit('refresh', true)
} }
}) })
}) })
} }
}, },
addpurchaseorder_item0List(){ addpurchaseorder_item0List() {
let item = { let item = {
licensenum:undefined, licensenum: undefined,
materialname:undefined, materialname: undefined,
pounttype:undefined, pounttype: undefined,
netweight:undefined, netweight: undefined,
unit:undefined, unit: undefined,
advance:undefined, advance: undefined,
price:undefined, price: undefined,
settlement:undefined, settlement: undefined,
rate:undefined, rate: undefined,
amount:undefined, amount: undefined,
notamount:undefined, notamount: undefined,
remark:undefined, remark: undefined,
} }
this.dataForm.purchaseorder_item0List.push(item) this.dataForm.purchaseorder_item0List.push(item)
}, },
delpurchaseorder_item0List(index) { delpurchaseorder_item0List(index) {
this.dataForm.purchaseorder_item0List.splice(index, 1); this.dataForm.purchaseorder_item0List.splice(index, 1);
}, },
dataList(){ dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm)); var _data = JSON.parse(JSON.stringify(this.dataForm));
for(let i=0;i<_data.purchaseorder_item0List.length;i++){ for (let i = 0; i < _data.purchaseorder_item0List.length; i++) {
var _list = _data.purchaseorder_item0List[i]; var _list = _data.purchaseorder_item0List[i];
} }
return _data; return _data;
}, },
dataInfo(dataAll){ dataInfo(dataAll) {
let _dataAll =dataAll let _dataAll = dataAll
for(let i=0;i<_dataAll.purchaseorder_item0List.length;i++){ for (let i = 0; i < _dataAll.purchaseorder_item0List.length; i++) {
var _list = _dataAll.purchaseorder_item0List[i]; var _list = _dataAll.purchaseorder_item0List[i];
} }
this.dataForm = _dataAll this.dataForm = _dataAll
}, },
}, },
} }
</script> </script>

@ -1,289 +1,365 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="单据编号"> <el-form-item label="单据编号">
<el-input v-model="query.documentno" placeholder="请输入" clearable> </el-input> <el-input v-model="query.documentno" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="documentno" label="单据编号" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="documentno" label="单据编号" width="0" align="left" />
<el-table-column prop="erpno" label="ERP订单号" width="0" align="left" <el-table-column prop="erpno" label="ERP订单号" width="0" align="left" />
/> <el-table-column prop="contractname" label="合同名称" width="0" align="left" />
<el-table-column prop="contractname" label="合同名称" width="0" align="left" <el-table-column prop="suppliername" label="供应商名称" width="0" align="left" />
/> <el-table-column prop="amount" label="金额" width="0" align="left" />
<el-table-column prop="suppliername" label="供应商名称" width="0" align="left" <el-table-column prop="num" label="数量" width="0" align="left" />
/> <el-table-column label="币别 " width="0" prop="currency" algin="left">
<el-table-column prop="amount" label="金额" width="0" align="left" <template slot-scope="scope">
/> {{ scope.row.currency | dynamicText(currencyOptions) }}
<el-table-column prop="num" label="数量" width="0" align="left" </template>
/> </el-table-column>
<el-table-column label="币别 " width="0" prop="currency" algin="left" <el-table-column prop="payprice" label="已付款金额" width="0" align="left" />
> <el-table-column prop="invoicenum" label="发票数量" width="0" align="left" />
<template slot-scope="scope"> <el-table-column prop="invoiceamount" label="发票金额" width="0" align="left" />
{{ scope.row.currency | dynamicText(currencyOptions) }} <el-table-column prop="advanceamount" label="垫资金额" width="0" align="left" />
</template> <el-table-column prop="creatortime" label="制单时间" width="0" align="left" />
</el-table-column> <el-table-column label="单据状态" width="0" prop="status" algin="left">
<el-table-column prop="payprice" label="已付款金额" width="0" align="left" <template slot-scope="scope">
/> {{ scope.row.status | dynamicText(statusOptions) }}
<el-table-column prop="invoicenum" label="发票数量" width="0" align="left" </template>
/> </el-table-column>
<el-table-column prop="invoiceamount" label="发票金额" width="0" align="left" <el-table-column prop="creatorusername" label="制单人" width="0" align="left" />
/> <el-table-column label="操作" fixed="right" width="100">
<el-table-column prop="advanceamount" label="垫资金额" width="0" align="left" <template slot-scope="scope">
/> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
<el-table-column prop="creatortime" label="制单时间" width="0" align="left" </el-button>
/> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
<el-table-column label="单据状态" width="0" prop="status" algin="left" </el-button>
> </template>
<template slot-scope="scope"> </el-table-column>
{{ scope.row.status | dynamicText(statusOptions) }} </JNPF-table>
</template> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
</el-table-column> @pagination="initData" />
<el-table-column prop="creatorusername" label="制单人" width="0" align="left" </div>
/> </div>
<el-table-column label="操作" fixed="right" <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
width="100" > <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<template slot-scope="scope"> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
<el-button type="text" </div>
@click="addOrUpdateHandle(scope.row.id)" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
documentno:undefined, data() {
}, return {
treeProps: { detailVisible: false,
children: 'children', query: {
label: 'fullName', documentno: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'documentno', label: '单据编号'}, sidx: "",
{prop: 'erpno', label: 'ERP订单号'}, },
{prop: 'contractname', label: '合同名称'}, formVisible: false,
{prop: 'suppliername', label: '供应商名称'}, exportBoxVisible: false,
{prop: 'amount', label: '金额'}, columnList: [{
{prop: 'num', label: '数量'}, prop: 'documentno',
{prop: 'currency', label: '币别 '}, label: '单据编号'
{prop: 'payprice', label: '已付款金额'}, },
{prop: 'invoicenum', label: '发票数量'}, {
{prop: 'invoiceamount', label: '发票金额'}, prop: 'erpno',
{prop: 'advanceamount', label: '垫资金额'}, label: 'ERP订单号'
{prop: 'creatortime', label: '制单时间'}, },
{prop: 'status', label: '单据状态'}, {
{prop: 'creatorusername', label: '制单人'}, prop: 'contractname',
], label: '合同名称'
currencyOptions:[{"fullName":"人民币","id":"0"},{"fullName":"美元","id":"1"},{"fullName":"英镑","id":"2"}], },
currencyProps:{"label":"fullName","value":"id"}, {
statusOptions:[{"fullName":"已保存","id":"0"},{"fullName":"开票中","id":"1"},{"fullName":"付款申请","id":"2"},{"fullName":"待付款","id":"3"},{"fullName":"付款中","id":"4"},{"fullName":"归档","id":"5"}], prop: 'suppliername',
statusProps:{"label":"fullName","value":"id"}, label: '供应商名称'
} },
}, {
computed: { prop: 'amount',
menuId() { label: '金额'
return this.$route.meta.modelId || '' },
} {
}, prop: 'num',
created() { label: '数量'
this.initData() },
}, {
methods: { prop: 'currency',
goDetail(id){ label: '币别 '
this.detailVisible = true },
this.$nextTick(() => { {
this.$refs.Detail.init(id) prop: 'payprice',
}) label: '已付款金额'
}, },
sortChange({column, prop, order}) { {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' prop: 'invoicenum',
this.listQuery.sidx = !order ? '' : prop label: '发票数量'
this.initData() },
}, {
initData() { prop: 'invoiceamount',
this.listLoading = true; label: '发票金额'
let _query = { },
...this.listQuery, {
...this.query, prop: 'advanceamount',
menuId:this.menuId label: '垫资金额'
}; },
request({ {
url: `/api/purchaseorder/Purchaseorder/getList`, prop: 'creatortime',
method: 'post', label: '制单时间'
data: _query },
}).then(res => { {
var _list =[]; prop: 'status',
for(let i=0;i<res.data.list.length;i++){ label: '单据状态'
let _data = res.data.list[i]; },
_list.push(_data) {
} prop: 'creatorusername',
this.list = _list label: '制单人'
this.total = res.data.pagination.total },
],
currencyOptions: [{
"fullName": "人民币",
"id": "0"
}, {
"fullName": "美元",
"id": "1"
}, {
"fullName": "英镑",
"id": "2"
}],
currencyProps: {
"label": "fullName",
"value": "id"
},
statusOptions: [{
"fullName": "已保存",
"id": "0"
}, {
"fullName": "开票中",
"id": "1"
}, {
"fullName": "付款申请",
"id": "2"
}, {
"fullName": "待付款",
"id": "3"
}, {
"fullName": "付款中",
"id": "4"
}, {
"fullName": "归档",
"id": "5"
}],
statusProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/purchaseorder/Purchaseorder/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/purchaseorder/Purchaseorder/${id}`, url: `/api/purchaseorder/Purchaseorder/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/purchaseorder/Purchaseorder/batchRemove/${ids}`,
url: `/api/purchaseorder/Purchaseorder/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/purchaseorder/Purchaseorder/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/purchaseorder/Purchaseorder/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,274 +1,270 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="600px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="24">
<el-col :span="24" > <el-form-item label="库区编码" prop="areacode">
<el-form-item label="库区编码" <el-input v-model="dataForm.areacode" placeholder="请输入" clearable :style='{"width":"100%"}'>
prop="areacode" >
<el-input v-model="dataForm.areacode"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="库区名称" <el-form-item label="库区名称" prop="areaname">
prop="areaname" > <el-input v-model="dataForm.areaname" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.areaname"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="最高库存" <el-form-item label="最高库存" prop="maximum">
prop="maximum" > <el-input-number v-model="dataForm.maximum" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.maximum"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="安全库存" <el-form-item label="安全库存" prop="safety">
prop="safety" > <el-input-number v-model="dataForm.safety" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.safety"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="最低库存" <el-form-item label="最低库存" prop="minimum">
prop="minimum" > <el-input-number v-model="dataForm.minimum" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.minimum"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="计量单位" <el-form-item label="计量单位" prop="unit">
prop="unit" > <el-select v-model="dataForm.unit" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.unit" <el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="仓库" <el-form-item label="仓库" prop="warehouseId">
prop="warehouseId" > <popupSelect v-model="dataForm.warehouseId" placeholder="请选择" clearable field="warehouseId"
<popupSelect v-model="dataForm.warehouseId" interfaceId="380988259175524165" :columnOptions="warehouseIdcolumnOptions"
placeholder="请选择" clearable field="warehouseId" interfaceId="380988259175524165" :columnOptions="warehouseIdcolumnOptions" propsValue="id" relationField="name" popupType="dialog" propsValue="id" relationField="name" popupType="dialog" popupTitle="选择数据"
popupTitle="选择数据" popupWidth="800px"> popupWidth="800px">
</popupSelect > </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="组织" <el-form-item label="组织" prop="orgnizeId">
prop="orgnizeId" > <com-select v-model="dataForm.orgnizeId" placeholder="请选择" clearable>
<com-select v-model="dataForm.orgnizeId"
placeholder="请选择" clearable >
</com-select> </com-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="部门" <el-form-item label="部门" prop="departmentId">
prop="departmentId" > <dep-select v-model="dataForm.departmentId" placeholder="请选择" clearable>
<dep-select v-model="dataForm.departmentId"
placeholder="请选择" clearable >
</dep-select> </dep-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建时间" <el-form-item label="创建时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建人名称" <el-form-item label="创建人名称" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改时间" <el-form-item label="修改时间" prop="lastmodifytime">
prop="lastmodifytime" > <el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.lastmodifytime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改人名称" <el-form-item label="修改人名称" prop="lastmodifyusername">
prop="lastmodifyusername" > <el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable
<el-input v-model="dataForm.lastmodifyusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
areacode : '', visible: false,
areaname : '', loading: false,
maximum : 1, isDetail: false,
safety : 1, dataForm: {
minimum : 1, areacode: '',
unit : "", areaname: '',
warehouseId : "", maximum: 1,
orgnizeId : '', safety: 1,
departmentId : '', minimum: 1,
creatortime : '', unit: "",
creatorusername : '', warehouseId: "",
lastmodifytime : '', orgnizeId: '',
lastmodifyusername : '', departmentId: '',
}, creatortime: '',
rules: creatorusername: '',
{ lastmodifytime: '',
areacode: [ lastmodifyusername: '',
{ },
required: true, rules: {
message: '请输入', areacode: [{
trigger: 'blur' required: true,
}, message: '请输入',
], trigger: 'blur'
}, }, ],
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], },
warehouseIdcolumnOptions:[ {"label":"ID","value":"id"}, {"label":"仓库号","value":"code"}, {"label":"仓库名称","value":"name"},], unitOptions: [{
"fullName": "吨",
} "id": "0"
}, }, {
computed: {}, "fullName": "千克",
watch: {}, "id": "1"
created() { }],
}, warehouseIdcolumnOptions: [{
mounted() {}, "label": "ID",
methods: { "value": "id"
clearData(data){ }, {
for (let key in data) { "label": "仓库号",
if (data[key] instanceof Array) { "value": "code"
data[key] = []; }, {
} else if (data[key] instanceof Object) { "label": "仓库名称",
this.clearData(data[key]); "value": "name"
} else { }, ],
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/reservoirarea/Reservoirarea/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/reservoirarea/Reservoirarea',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/reservoirarea/Reservoirarea/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.orgnizeId = JSON.stringify(_data.orgnizeId)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.orgnizeId = JSON.parse( _dataAll.orgnizeId)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/reservoirarea/Reservoirarea/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/reservoirarea/Reservoirarea',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/reservoirarea/Reservoirarea/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.orgnizeId = JSON.stringify(_data.orgnizeId)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.orgnizeId = JSON.parse(_dataAll.orgnizeId)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,286 +1,336 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="库区编码"> <el-form-item label="库区编码">
<el-input v-model="query.areacode" placeholder="请输入" clearable> </el-input> <el-input v-model="query.areacode" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="库区名称"> <el-form-item label="库区名称">
<el-input v-model="query.areaname" placeholder="请输入" clearable> </el-input> <el-input v-model="query.areaname" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="areacode" label="库区编码" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="areacode" label="库区编码" width="0" align="left" />
<el-table-column prop="areaname" label="库区名称" width="0" align="left" <el-table-column prop="areaname" label="库区名称" width="0" align="left" />
/> <el-table-column prop="maximum" label="最高库存" width="0" align="left" />
<el-table-column prop="maximum" label="最高库存" width="0" align="left" <el-table-column prop="safety" label="安全库存" width="0" align="left" />
/> <el-table-column prop="minimum" label="最低库存" width="0" align="left" />
<el-table-column prop="safety" label="安全库存" width="0" align="left" <el-table-column label="计量单位" width="0" prop="unit" algin="left">
/> <template slot-scope="scope">
<el-table-column prop="minimum" label="最低库存" width="0" align="left" {{ scope.row.unit | dynamicText(unitOptions) }}
/> </template>
<el-table-column label="计量单位" width="0" prop="unit" algin="left" </el-table-column>
> <el-table-column prop="warehouseId" label="仓库" width="0" align="left" />
<template slot-scope="scope"> <el-table-column prop="orgnizeId" label="组织" width="0" align="left" />
{{ scope.row.unit | dynamicText(unitOptions) }} <el-table-column prop="departmentId" label="部门" width="0" align="left" />
</template> <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />
</el-table-column> <el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" />
<el-table-column prop="warehouseId" label="仓库" width="0" align="left" <el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" />
/> <el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" />
<el-table-column prop="orgnizeId" label="组织" width="0" align="left" <el-table-column label="操作" fixed="right" width="100">
/> <template slot-scope="scope">
<el-table-column prop="departmentId" label="部门" width="0" align="left" <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
/> </el-button>
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
/> </el-button>
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" </template>
/> </el-table-column>
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" </JNPF-table>
/> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" @pagination="initData" />
/> </div>
<el-table-column label="操作" fixed="right" </div>
width="100" > <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<template slot-scope="scope"> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<el-button type="text" <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
@click="addOrUpdateHandle(scope.row.id)" >编辑 </div>
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
areacode:undefined, data() {
areaname:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', areacode: undefined,
label: 'fullName', areaname: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'areacode', label: '库区编码'}, sidx: "",
{prop: 'areaname', label: '库区名称'}, },
{prop: 'maximum', label: '最高库存'}, formVisible: false,
{prop: 'safety', label: '安全库存'}, exportBoxVisible: false,
{prop: 'minimum', label: '最低库存'}, columnList: [{
{prop: 'unit', label: '计量单位'}, prop: 'areacode',
{prop: 'warehouseId', label: '仓库'}, label: '库区编码'
{prop: 'orgnizeId', label: '组织'}, },
{prop: 'departmentId', label: '部门'}, {
{prop: 'creatortime', label: '创建时间'}, prop: 'areaname',
{prop: 'creatorusername', label: '创建人名称'}, label: '库区名称'
{prop: 'lastmodifytime', label: '修改时间'}, },
{prop: 'lastmodifyusername', label: '修改人名称'}, {
], prop: 'maximum',
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], label: '最高库存'
unitProps:{"label":"fullName","value":"id"}, },
} {
}, prop: 'safety',
computed: { label: '安全库存'
menuId() { },
return this.$route.meta.modelId || '' {
} prop: 'minimum',
}, label: '最低库存'
created() { },
this.initData() {
}, prop: 'unit',
methods: { label: '计量单位'
goDetail(id){ },
this.detailVisible = true {
this.$nextTick(() => { prop: 'warehouseId',
this.$refs.Detail.init(id) label: '仓库'
}) },
}, {
sortChange({column, prop, order}) { prop: 'orgnizeId',
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' label: '组织'
this.listQuery.sidx = !order ? '' : prop },
this.initData() {
}, prop: 'departmentId',
initData() { label: '部门'
this.listLoading = true; },
let _query = { {
...this.listQuery, prop: 'creatortime',
...this.query, label: '创建时间'
menuId:this.menuId },
}; {
request({ prop: 'creatorusername',
url: `/api/reservoirarea/Reservoirarea/getList`, label: '创建人名称'
method: 'post', },
data: _query {
}).then(res => { prop: 'lastmodifytime',
var _list =[]; label: '修改时间'
for(let i=0;i<res.data.list.length;i++){ },
let _data = res.data.list[i]; {
_list.push(_data) prop: 'lastmodifyusername',
} label: '修改人名称'
this.list = _list },
this.total = res.data.pagination.total ],
unitOptions: [{
"fullName": "吨",
"id": "0"
}, {
"fullName": "千克",
"id": "1"
}],
unitProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/reservoirarea/Reservoirarea/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/reservoirarea/Reservoirarea/${id}`, url: `/api/reservoirarea/Reservoirarea/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/reservoirarea/Reservoirarea/batchRemove/${ids}`,
url: `/api/reservoirarea/Reservoirarea/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/reservoirarea/Reservoirarea/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/reservoirarea/Reservoirarea/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,266 +1,264 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="1000px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="24">
<el-col :span="24" > <el-form-item label-width="0">
<el-form-item label-width="0"> <JNPF-Text :style='{"width":"100%"}'
<JNPF-Text :style='{"width":"100%"}' :textStyle='{"color":"#000000","font-weight":"bold","text-decoration":"none","font-size":18,"line-height":32,"font-style":"normal","text-align":"left"}'
:textStyle='{"color":"#000000","font-weight":"bold","text-decoration":"none","font-size":18,"line-height":32,"font-style":"normal","text-align":"left"}' value="供应商编辑"> value="供应商编辑">
</JNPF-Text> </JNPF-Text>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="供应商编码" <el-form-item label="供应商编码" prop="supplierCode">
prop="supplierCode" > <el-input v-model="dataForm.supplierCode" placeholder="请输入供应商编码" clearable
<el-input v-model="dataForm.supplierCode" :style='{"width":"100%"}'>
placeholder="请输入供应商编码" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="供应商名称" <el-form-item label="供应商名称" prop="supplierName">
prop="supplierName" > <el-input v-model="dataForm.supplierName" placeholder="请输入供应商名称" clearable
<el-input v-model="dataForm.supplierName" :style='{"width":"100%"}'>
placeholder="请输入供应商名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="地点ID" <el-form-item label="地点ID" prop="supplierSiteId">
prop="supplierSiteId" > <el-input v-model="dataForm.supplierSiteId" placeholder="请输入供应商地点ID" clearable
<el-input v-model="dataForm.supplierSiteId" :style='{"width":"100%"}'>
placeholder="请输入供应商地点ID" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="地点名称" <el-form-item label="地点名称" prop="supplierSiteCode">
prop="supplierSiteCode" > <el-input v-model="dataForm.supplierSiteCode" placeholder="请输入供应商地点名称" clearable
<el-input v-model="dataForm.supplierSiteCode" :style='{"width":"100%"}'>
placeholder="请输入供应商地点名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="所属公司编码" <el-form-item label="所属公司编码" prop="companyId">
prop="companyId" > <el-input v-model="dataForm.companyId" placeholder="请输入所属公司编码" clearable
<el-input v-model="dataForm.companyId" :style='{"width":"100%"}'>
placeholder="请输入所属公司编码" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="所属公司名称" <el-form-item label="所属公司名称" prop="companyName">
prop="companyName" > <el-input v-model="dataForm.companyName" placeholder="请输入公司名称" clearable
<el-input v-model="dataForm.companyName" :style='{"width":"100%"}'>
placeholder="请输入公司名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="联系人" <el-form-item label="联系人" prop="contactName">
prop="contactName" > <el-input v-model="dataForm.contactName" placeholder="请输入联系人" clearable
<el-input v-model="dataForm.contactName" :style='{"width":"100%"}'>
placeholder="请输入联系人" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="联系电话" <el-form-item label="联系电话" prop="contactPhone">
prop="contactPhone" > <el-input v-model="dataForm.contactPhone" placeholder="请输入联系电话" clearable
<el-input v-model="dataForm.contactPhone" :style='{"width":"100%"}'>
placeholder="请输入联系电话" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="供应商等级" <el-form-item label="供应商等级" prop="supplierLevel">
prop="supplierLevel" > <el-select v-model="dataForm.supplierLevel" placeholder="请选择" clearable
<el-select v-model="dataForm.supplierLevel" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in supplierLevelOptions" :key="index"
<el-option v-for="(item, index) in supplierLevelOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="地址" <el-form-item label="地址" prop="address">
prop="address" > <el-input v-model="dataForm.address" placeholder="请输入地址" clearable
<el-input v-model="dataForm.address" :style='{"width":"100%"}'>
placeholder="请输入地址" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="启用" <el-form-item label="启用" prop="status">
prop="status" > <el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0">
<el-switch v-model="dataForm.status"
:active-value="1" :inactive-value="0" >
</el-switch> </el-switch>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
supplierCode : '', visible: false,
supplierName : '', loading: false,
supplierSiteId : '', isDetail: false,
supplierSiteCode : '', dataForm: {
companyId : '', supplierCode: '',
companyName : '', supplierName: '',
contactName : '', supplierSiteId: '',
contactPhone : '', supplierSiteCode: '',
supplierLevel : "1", companyId: '',
address : '', companyName: '',
status : 1, contactName: '',
}, contactPhone: '',
rules: supplierLevel: "1",
{ address: '',
supplierCode: [ status: 1,
{ },
required: true, rules: {
message: '请输入供应商编码', supplierCode: [{
trigger: 'blur' required: true,
}, message: '请输入供应商编码',
], trigger: 'blur'
supplierName: [ }, ],
{ supplierName: [{
required: true, required: true,
message: '请输入供应商名称', message: '请输入供应商名称',
trigger: 'blur' trigger: 'blur'
}, }, ],
], },
}, supplierLevelOptions: [{
supplierLevelOptions:[{"fullName":"一级","id":"1"},{"fullName":"二级","id":"2"},{"fullName":"三级","id":"3"},{"fullName":"四级","id":"4"}], "fullName": "一级",
"id": "1"
} }, {
}, "fullName": "二级",
computed: {}, "id": "2"
watch: {}, }, {
created() { "fullName": "三级",
}, "id": "3"
mounted() {}, }, {
methods: { "fullName": "四级",
clearData(data){ "id": "4"
for (let key in data) { }],
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/supplier/Supplier/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/supplier/Supplier',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/supplier/Supplier/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.status = parseInt(_data.status)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.status = parseInt( _dataAll.status)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/supplier/Supplier/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/supplier/Supplier',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/supplier/Supplier/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.status = parseInt(_data.status)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.status = parseInt(_dataAll.status)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,293 +1,345 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商编码"> <el-form-item label="供应商编码">
<el-input v-model="query.supplierCode" placeholder="请输入" clearable> </el-input> <el-input v-model="query.supplierCode" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商名称"> <el-form-item label="供应商名称">
<el-input v-model="query.supplierName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.supplierName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="supplierCode" label="供应商编码" width="0" align="left" @selection-change="handleSelectionChange">
sortable="custom" /> <el-table-column prop="supplierCode" label="供应商编码" width="0" align="left" sortable="custom" />
<el-table-column prop="supplierName" label="供应商名称" width="0" align="left" <el-table-column prop="supplierName" label="供应商名称" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column prop="supplierSiteId" label="地点ID" width="0" align="left" sortable="custom" />
<el-table-column prop="supplierSiteId" label="地点ID" width="0" align="left" <el-table-column prop="supplierSiteCode" label="地点名称" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column prop="companyId" label="所属公司编码" width="0" align="left" sortable="custom" />
<el-table-column prop="supplierSiteCode" label="地点名称" width="0" align="left" <el-table-column prop="companyName" label="所属公司名称" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column prop="contactName" label="联系人" width="0" align="left" sortable="custom" />
<el-table-column prop="companyId" label="所属公司编码" width="0" align="left" <el-table-column prop="contactPhone" label="联系电话" width="0" align="left" sortable="custom" />
sortable="custom" /> <el-table-column label="供应商等级" width="0" prop="supplierLevel" algin="left" sortable="custom">
<el-table-column prop="companyName" label="所属公司名称" width="0" align="left" <template slot-scope="scope">
sortable="custom" /> {{ scope.row.supplierLevel | dynamicText(supplierLevelOptions) }}
<el-table-column prop="contactName" label="联系人" width="0" align="left" </template>
sortable="custom" /> </el-table-column>
<el-table-column prop="contactPhone" label="联系电话" width="0" align="left" <el-table-column prop="address" label="地址" width="0" align="left" sortable="custom" />
sortable="custom" /> <!-- <el-table-column prop="status" label="启用" width="0" align="left"
<el-table-column label="供应商等级" width="0" prop="supplierLevel" algin="left"
sortable="custom" >
<template slot-scope="scope">
{{ scope.row.supplierLevel | dynamicText(supplierLevelOptions) }}
</template>
</el-table-column>
<el-table-column prop="address" label="地址" width="0" align="left"
sortable="custom" />
<!-- <el-table-column prop="status" label="启用" width="0" align="left"
sortable="custom" /> --> sortable="custom" /> -->
<el-table-column prop="status" label="状态" width="0" align="left"> <el-table-column prop="status" label="状态" width="0" align="left">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" disable-transitions v-if="scope.row.status == 1"> <el-tag type="success" disable-transitions v-if="scope.row.status == 1">
</el-tag> </el-tag>
<el-tag type="danger" disable-transitions v-else></el-tag> <el-tag type="danger" disable-transitions v-else></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" <el-table-column label="操作" fixed="right" width="150">
width="150" > <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
<el-button type="text" </el-button>
@click="addOrUpdateHandle(scope.row.id)" >编辑 <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <el-button type="text" @click="goDetail(scope.row.id)">
</el-button> </el-button>
<el-button type="text" </template>
@click="goDetail(scope.row.id)">详情 </el-table-column>
</el-button> </JNPF-table>
</template> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
</el-table-column> @pagination="initData" />
</JNPF-table> </div>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> </div>
</div> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
</div> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> </div>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
supplierCode:undefined, data() {
supplierName:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', supplierCode: undefined,
label: 'fullName', supplierName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "supplierCode", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'supplierCode', label: '供应商编码'}, sidx: "supplierCode",
{prop: 'supplierName', label: '供应商名称'}, },
{prop: 'supplierSiteId', label: '地点ID'}, formVisible: false,
{prop: 'supplierSiteCode', label: '地点名称'}, exportBoxVisible: false,
{prop: 'companyId', label: '所属公司编码'}, columnList: [{
{prop: 'companyName', label: '所属公司名称'}, prop: 'supplierCode',
{prop: 'contactName', label: '联系人'}, label: '供应商编码'
{prop: 'contactPhone', label: '联系电话'}, },
{prop: 'supplierLevel', label: '供应商等级'}, {
{prop: 'address', label: '地址'}, prop: 'supplierName',
{prop: 'status', label: '启用'}, label: '供应商名称'
], },
supplierLevelOptions:[{"fullName":"一级","id":"1"},{"fullName":"二级","id":"2"},{"fullName":"三级","id":"3"},{"fullName":"四级","id":"4"}], {
supplierLevelProps:{"label":"fullName","value":"id"}, prop: 'supplierSiteId',
} label: '地点ID'
}, },
computed: { {
menuId() { prop: 'supplierSiteCode',
return this.$route.meta.modelId || '' label: '地点名称'
} },
}, {
created() { prop: 'companyId',
this.initData() label: '所属公司编码'
}, },
methods: { {
goDetail(id){ prop: 'companyName',
this.detailVisible = true label: '所属公司名称'
this.$nextTick(() => { },
this.$refs.Detail.init(id) {
}) prop: 'contactName',
}, label: '联系人'
sortChange({column, prop, order}) { },
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' {
this.listQuery.sidx = !order ? '' : prop prop: 'contactPhone',
this.initData() label: '联系电话'
}, },
initData() { {
this.listLoading = true; prop: 'supplierLevel',
let _query = { label: '供应商等级'
...this.listQuery, },
...this.query, {
menuId:this.menuId prop: 'address',
}; label: '地址'
request({ },
url: `/api/supplier/Supplier/getList`, {
method: 'post', prop: 'status',
data: _query label: '启用'
}).then(res => { },
var _list =[]; ],
for(let i=0;i<res.data.list.length;i++){ supplierLevelOptions: [{
let _data = res.data.list[i]; "fullName": "一级",
_list.push(_data) "id": "1"
} }, {
this.list = _list "fullName": "二级",
this.total = res.data.pagination.total "id": "2"
}, {
"fullName": "三级",
"id": "3"
}, {
"fullName": "四级",
"id": "4"
}],
supplierLevelProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/supplier/Supplier/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/supplier/Supplier/${id}`, url: `/api/supplier/Supplier/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/supplier/Supplier/batchRemove/${ids}`,
url: `/api/supplier/Supplier/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/supplier/Supplier/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/supplier/Supplier/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "supplierCode", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "supplierCode",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,388 +1,374 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="800px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="12">
<el-col :span="12" > <el-form-item label="物料编码" prop="materialCode">
<el-form-item label="物料编码" <relationForm v-model="dataForm.materialCode" placeholder="请选择" clearable
prop="materialCode" > field="materialCode" modelId="294090217084722181"
<relationForm v-model="dataForm.materialCode" :columnOptions="materialCodecolumnOptions" relationField="selectField121">
placeholder="请选择" clearable field="materialCode" modelId ="294090217084722181" :columnOptions="materialCodecolumnOptions" relationField="selectField121" >
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="物料名称" <el-form-item label="物料名称" prop="materialName">
prop="materialName" > <el-input v-model="dataForm.materialName" placeholder="请输入" clearable
<el-input v-model="dataForm.materialName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="销售合同" <el-form-item label="销售合同" prop="salesName">
prop="salesName" > <relationForm v-model="dataForm.salesName" placeholder="请选择" clearable field="salesName"
<relationForm v-model="dataForm.salesName" modelId="294090217084722181" :columnOptions="salesNamecolumnOptions"
placeholder="请选择" clearable field="salesName" modelId ="294090217084722181" :columnOptions="salesNamecolumnOptions" relationField="selectField121" > relationField="selectField121">
</relationForm> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="客户名称" <el-form-item label="客户名称" prop="customerName">
prop="customerName" > <el-input v-model="dataForm.customerName" placeholder="请输入" clearable
<el-input v-model="dataForm.customerName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="是否垫资" <el-form-item label="是否垫资" prop="advance">
prop="advance" > <el-select v-model="dataForm.advance" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.advance" <el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="销售价格" <el-form-item label="销售价格" prop="salesPrice">
prop="salesPrice" > <el-input-number v-model="dataForm.salesPrice" placeholder="数字文本" :step="1">
<el-input v-model="dataForm.salesPrice"
placeholder="数字文本" clearable :style='{"width":"100%"}' > </el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运输方式" prop="transportType">
<el-select v-model="dataForm.transportType" placeholder="请选择" clearable
:style='{"width":"100%"}'>
<el-option v-for="(item, index) in transportTypeOptions" :key="index"
:label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-input> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="运输方式" <el-form-item label="运费" prop="departmentId">
prop="transportType" > <el-input-number v-model="dataForm.departmentId" placeholder="数字文本" :step="1">
<el-select v-model="dataForm.transportType"
placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-option v-for="(item, index) in transportTypeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="运费" <el-form-item label="车号" prop="licenseNo">
prop="departmentId" > <relationForm v-model="dataForm.licenseNo" placeholder="请选择" clearable field="licenseNo"
<el-input-number v-model="dataForm.departmentId" modelId="294090217084722181" :columnOptions="licenseNocolumnOptions"
placeholder="数字文本" :step="1" > relationField="selectField122">
</el-input-number> </relationForm>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="车号" <el-form-item label="业务员名称" prop="businessName">
prop="licenseNo" > <el-input v-model="dataForm.businessName" placeholder="请输入" clearable
<relationForm v-model="dataForm.licenseNo" :style='{"width":"100%"}'>
placeholder="请选择" clearable field="licenseNo" modelId ="294090217084722181" :columnOptions="licenseNocolumnOptions" relationField="selectField122" >
</relationForm> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="24">
<el-form-item label="业务员名称" <el-form-item label="磅单图片" prop="poundPictures">
prop="businessName" > <JNPF-UploadImg v-model="dataForm.poundPictures" :fileSize="500" sizeUnit="MB" :limit="9">
<el-input v-model="dataForm.businessName"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="12">
<el-form-item label="磅单图片" <el-form-item label="皮重" prop="tareWeight">
prop="poundPictures" > <el-input-number v-model="dataForm.tareWeight" placeholder="数字文本" :step="1">
<JNPF-UploadImg v-model="dataForm.poundPictures"
:fileSize="500" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="皮重" <el-form-item label="毛重" prop="grossWeight">
prop="tareWeight" > <el-input-number v-model="dataForm.grossWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.tareWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="毛重" <el-form-item label="扣重" prop="buckleWeight">
prop="grossWeight" > <el-input-number v-model="dataForm.buckleWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.grossWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<el-form-item label="扣重" <el-form-item label="净重" prop="netWeight">
prop="buckleWeight" > <el-input-number v-model="dataForm.netWeight" placeholder="数字文本" :step="1">
<el-input-number v-model="dataForm.buckleWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="24">
<el-form-item label="净重" <el-form-item label="备注" prop="remark">
prop="netWeight" > <el-input v-model="dataForm.remark" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input-number v-model="dataForm.netWeight"
placeholder="数字文本" :step="1" >
</el-input-number> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="备注" <el-form-item label="司机名称" prop="driverName">
prop="remark" > <el-input v-model="dataForm.driverName" placeholder="请输入" clearable
<el-input v-model="dataForm.remark" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="司机名称" <el-form-item label="车辆图片" prop="vehiclePictures">
prop="driverName" > <JNPF-UploadImg v-model="dataForm.vehiclePictures" :fileSize="500" sizeUnit="MB" :limit="9">
<el-input v-model="dataForm.driverName"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="车辆图片" <el-form-item label="制单人" prop="creatorusername">
prop="vehiclePictures" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<JNPF-UploadImg v-model="dataForm.vehiclePictures" :style='{"width":"100%"}'>
:fileSize="500" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > </template>
<el-form-item label="制单人" </el-form>
prop="creatorusername" > </el-row>
<el-input v-model="dataForm.creatorusername" <span slot="footer" class="dialog-footer">
placeholder="请输入" clearable :style='{"width":"100%"}'> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</el-input> </span>
</el-form-item> </el-dialog>
</el-col>
</template>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span>
</el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
materialCode : "", visible: false,
materialName : '', loading: false,
salesName : "", isDetail: false,
customerName : '', dataForm: {
advance : "", materialCode: "",
salesPrice : '', materialName: '',
transportType : "", salesName: "",
departmentId : 11.225, customerName: '',
licenseNo : "", advance: "",
businessName : '', salesPrice: '',
poundPictures : [], transportType: "",
tareWeight : '', departmentId: 11.225,
grossWeight : '', licenseNo: "",
buckleWeight : '', businessName: '',
netWeight : '', poundPictures: [],
remark : '', tareWeight: '',
driverName : '', grossWeight: '',
vehiclePictures : [], buckleWeight: '',
creatorusername : '', netWeight: '',
}, remark: '',
rules: driverName: '',
{ vehiclePictures: [],
materialCode: [ creatorusername: '',
{ },
required: true, rules: {
message: '请选择', materialCode: [{
trigger: 'change' required: true,
}, message: '请选择',
], trigger: 'change'
salesName: [ }, ],
{ salesName: [{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}, }, ],
], licenseNo: [{
licenseNo: [ required: true,
{ message: '请选择',
required: true, trigger: 'change'
message: '请选择', }, ],
trigger: 'change' // poundPictures: [
}, // {
], // required: true,
// poundPictures: [ // message: '',
// { // trigger: 'click'
// required: true, // },
// message: '', // ],
// trigger: 'click' tareWeight: [{
// }, required: true,
// ], message: '数字文本',
tareWeight: [ trigger: ["blur", "change"]
{ }, ],
required: true, grossWeight: [{
message: '数字文本', required: true,
trigger: ["blur","change"] message: '数字文本',
}, trigger: ["blur", "change"]
], }, ],
grossWeight: [ buckleWeight: [{
{ required: true,
required: true, message: '数字文本',
message: '数字文本', trigger: ["blur", "change"]
trigger: ["blur","change"] }, ],
}, netWeight: [{
], required: true,
buckleWeight: [ message: '数字文本',
{ trigger: ["blur", "change"]
required: true, }, ],
message: '数字文本', },
trigger: ["blur","change"] materialCodecolumnOptions: [{
}, "label": "事件等级",
], "value": "selectField121"
netWeight: [ }, ],
{ salesNamecolumnOptions: [{
required: true, "label": "事件等级",
message: '数字文本', "value": "selectField121"
trigger: ["blur","change"] }, ],
}, advanceOptions: [{
], "fullName": "是",
}, "id": "1"
materialCodecolumnOptions:[ {"label":"事件等级","value":"selectField121"},], }, {
salesNamecolumnOptions:[ {"label":"事件等级","value":"selectField121"},], "fullName": "否",
advanceOptions:[{"fullName":"是","id":"1"},{"fullName":"否","id":"0"}], "id": "0"
transportTypeOptions:[{"fullName":"汽运","id":"0"},{"fullName":"船运","id":"1"},{"fullName":"火车","id":"2"}], }],
licenseNocolumnOptions:[ {"label":"事件级别","value":"selectField122"},], transportTypeOptions: [{
"fullName": "汽运",
} "id": "0"
}, }, {
computed: {}, "fullName": "船运",
watch: {}, "id": "1"
created() { }, {
}, "fullName": "火车",
mounted() {}, "id": "2"
methods: { }],
clearData(data){ licenseNocolumnOptions: [{
for (let key in data) { "label": "事件级别",
if (data[key] instanceof Array) { "value": "selectField122"
data[key] = []; }, ],
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/tradeupload/Tradeupload/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/tradeupload/Tradeupload/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.poundPictures = JSON.stringify(_data.poundPictures)
_data.vehiclePictures = JSON.stringify(_data.vehiclePictures)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.poundPictures = JSON.parse( _dataAll.poundPictures)
_dataAll.vehiclePictures = JSON.parse( _dataAll.vehiclePictures)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.poundPictures = JSON.stringify(_data.poundPictures)
_data.vehiclePictures = JSON.stringify(_data.vehiclePictures)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.poundPictures = JSON.parse(_dataAll.poundPictures)
_dataAll.vehiclePictures = JSON.parse(_dataAll.vehiclePictures)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,295 +1,393 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物料名称"> <el-form-item label="物料名称">
<el-input v-model="query.materialName" placeholder="请输入" clearable> </el-input> <el-input v-model="query.materialName" placeholder="请输入" clearable> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="reset()"/> @click="reset()" />
</el-tooltip> </el-tooltip>
<screenfull isContainer/> <screenfull isContainer />
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
<el-table-column prop="licenseNo" label="车号" width="0" align="left" @selection-change="handleSelectionChange">
/> <el-table-column prop="licenseNo" label="车号" width="0" align="left" />
<el-table-column prop="materialName" label="物料名称" width="0" align="left" <el-table-column prop="materialName" label="物料名称" width="0" align="left" />
/> <el-table-column prop="grossWeight" label="毛重" width="0" align="left" />
<el-table-column prop="grossWeight" label="毛重" width="0" align="left" <el-table-column prop="tareWeight" label="皮重" width="0" align="left" />
/> <el-table-column prop="buckleWeight" label="扣重" width="0" align="left" />
<el-table-column prop="tareWeight" label="皮重" width="0" align="left" <el-table-column prop="netWeight" label="净重" width="0" align="left" />
/> <el-table-column prop="driverName" label="司机名称" width="0" align="left" />
<el-table-column prop="buckleWeight" label="扣重" width="0" align="left" <el-table-column prop="customerName" label="客户名称" width="0" align="left" />
/> <el-table-column prop="salesName" label="销售合同" width="0" align="left" />
<el-table-column prop="netWeight" label="净重" width="0" align="left" <el-table-column label="是否垫资" width="0" prop="advance" algin="left">
/> <template slot-scope="scope">
<el-table-column prop="driverName" label="司机名称" width="0" align="left" {{ scope.row.advance | dynamicText(advanceOptions) }}
/> </template>
<el-table-column prop="customerName" label="客户名称" width="0" align="left" </el-table-column>
/> <el-table-column label="运输方式" width="0" prop="transportType" algin="left">
<el-table-column prop="salesName" label="销售合同" width="0" align="left" <template slot-scope="scope">
/> {{ scope.row.transportType | dynamicText(transportTypeOptions) }}
<el-table-column label="是否垫资" width="0" prop="advance" algin="left" </template>
> </el-table-column>
<template slot-scope="scope"> <el-table-column prop="departmentId" label="运费" width="0" align="left" />
{{ scope.row.advance | dynamicText(advanceOptions) }} <el-table-column prop="salesPrice" label="销售价格" width="0" align="left" />
</template> <el-table-column prop="creatorusername" label="制单人" width="0" align="left" />
</el-table-column> <el-table-column prop="businessName" label="业务员" width="0" align="left" />
<el-table-column label="运输方式" width="0" prop="transportType" algin="left" <el-table-column prop="remark" label="备注" width="0" align="left" />
> <el-table-column prop="poundPictures" label="磅单图片" width="0" align="left">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.transportType | dynamicText(transportTypeOptions) }} <span v-for="(item,index) in JSON.parse(scope.row.poundPictures)" :key="index">
</template> <el-popover placement="bottom" trigger="click" width="1000">
</el-table-column> <img :src="`/dev${item.url}`" width="100%" />
<el-table-column prop="departmentId" label="运费" width="0" align="left" <img
/> slot="reference"
<el-table-column prop="salesPrice" label="销售价格" width="0" align="left" :src="`/dev${item.url}`"
/> :alt="`/dev${item.url}`"
<el-table-column prop="creatorusername" label="制单人" width="0" align="left" style="max-height: 70px;max-width: 70px; padding: 5px"
/> />
<el-table-column prop="businessName" label="业务员名称" width="0" align="left" </el-popover>
/> </span>
<el-table-column prop="remark" label="备注" width="0" align="left" </template>
/> </el-table-column>
<el-table-column label="操作" fixed="right" <el-table-column prop="vehiclePictures" label="车辆图片" width="0" align="left">
width="100" > <template slot-scope="scope">
<template slot-scope="scope"> <span v-for="(item,index) in JSON.parse(scope.row.vehiclePictures)" :key="index">
<el-button type="text" <el-popover placement="bottom" trigger="click" width="1000">
@click="addOrUpdateHandle(scope.row.id)" >编辑 <img :src="`/dev${item.url}`" width="100%" />
</el-button> <img
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> slot="reference"
</el-button> :src="`/dev${item.url}`"
</template> :alt="`/dev${item.url}`"
</el-table-column> style="max-height: 70px;max-width: 70px; padding: 5px"
</JNPF-table> />
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> </el-popover>
</div> </span>
</div> </template>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> </el-table-column>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> <el-table-column label="操作" fixed="right" width="100">
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> <template slot-scope="scope">
</div> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
@pagination="initData" />
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
materialName:undefined, data() {
}, return {
treeProps: { detailVisible: false,
children: 'children', query: {
label: 'fullName', materialName: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'licenseNo', label: '车号'}, sidx: "",
{prop: 'materialName', label: '物料名称'}, },
{prop: 'grossWeight', label: '毛重'}, formVisible: false,
{prop: 'tareWeight', label: '皮重'}, exportBoxVisible: false,
{prop: 'buckleWeight', label: '扣重'}, columnList: [{
{prop: 'netWeight', label: '净重'}, prop: 'licenseNo',
{prop: 'driverName', label: '司机名称'}, label: '车号'
{prop: 'customerName', label: '客户名称'}, },
{prop: 'salesName', label: '销售合同'}, {
{prop: 'advance', label: '是否垫资'}, prop: 'materialName',
{prop: 'transportType', label: '运输方式'}, label: '物料名称'
{prop: 'departmentId', label: '运费'}, },
{prop: 'salesPrice', label: '销售价格'}, {
{prop: 'creatorusername', label: '制单人'}, prop: 'grossWeight',
{prop: 'businessName', label: '业务员名称'}, label: '毛重'
{prop: 'remark', label: '备注'}, },
], {
advanceOptions:[{"fullName":"是","id":"1"},{"fullName":"否","id":"0"}], prop: 'tareWeight',
advanceProps:{"label":"fullName","value":"id"}, label: '皮重'
transportTypeOptions:[{"fullName":"汽运","id":"0"},{"fullName":"船运","id":"1"},{"fullName":"火车","id":"2"}], },
transportTypeProps:{"label":"fullName","value":"id"}, {
} prop: 'buckleWeight',
}, label: '扣重'
computed: { },
menuId() { {
return this.$route.meta.modelId || '' prop: 'netWeight',
} label: '净重'
}, },
created() { {
this.initData() prop: 'driverName',
}, label: '司机名称'
methods: { },
goDetail(id){ {
this.detailVisible = true prop: 'customerName',
this.$nextTick(() => { label: '客户名称'
this.$refs.Detail.init(id) },
}) {
}, prop: 'salesName',
sortChange({column, prop, order}) { label: '销售合同'
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' },
this.listQuery.sidx = !order ? '' : prop {
this.initData() prop: 'advance',
}, label: '是否垫资'
initData() { },
this.listLoading = true; {
let _query = { prop: 'transportType',
...this.listQuery, label: '运输方式'
...this.query, },
menuId:this.menuId {
}; prop: 'departmentId',
request({ label: '运费'
url: `/api/tradeupload/Tradeupload/getList`, },
method: 'post', {
data: _query prop: 'salesPrice',
}).then(res => { label: '销售价格'
var _list =[]; },
for(let i=0;i<res.data.list.length;i++){ {
let _data = res.data.list[i]; prop: 'creatorusername',
_list.push(_data) label: '制单人'
} },
this.list = _list {
this.total = res.data.pagination.total prop: 'businessName',
label: '业务员名称'
},
{
prop: 'remark',
label: '备注'
},
],
advanceOptions: [{
"fullName": "是",
"id": "1"
}, {
"fullName": "否",
"id": "0"
}],
advanceProps: {
"label": "fullName",
"value": "id"
},
transportTypeOptions: [{
"fullName": "汽运",
"id": "0"
}, {
"fullName": "船运",
"id": "1"
}, {
"fullName": "火车",
"id": "2"
}],
transportTypeProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/tradeupload/Tradeupload/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/tradeupload/Tradeupload/${id}`, url: `/api/tradeupload/Tradeupload/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/tradeupload/Tradeupload/batchRemove/${ids}`,
url: `/api/tradeupload/Tradeupload/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/tradeupload/Tradeupload/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/tradeupload/Tradeupload/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

@ -1,55 +1,50 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="600px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <!-- <el-col :span="24">
<el-col :span="24" > <el-form-item label-width="0">
<el-form-item label-width="0"> <JNPF-Text :style='{"width":"100%"}'
<JNPF-Text :style='{"width":"100%"}' :textStyle='{"color":"#000000","font-weight":"normal","text-decoration":"none","font-size":18,"line-height":32,"font-style":"normal","text-align":"left"}'
:textStyle='{"color":"#000000","font-weight":"normal","text-decoration":"none","font-size":18,"line-height":32,"font-style":"normal","text-align":"left"}' value="车辆信息"> value="车辆信息">
</JNPF-Text> </JNPF-Text>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="24" > <el-col :span="24">
<el-form-item label="车牌号" <el-form-item label="车牌号" prop="ticketno">
prop="ticketno" > <el-input v-model="dataForm.ticketno" placeholder="请输入车牌号" clearable
<el-input v-model="dataForm.ticketno" :style='{"width":"100%"}'>
placeholder="请输入车牌号" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="司机名称" <el-form-item label="司机名称" prop="drivername">
prop="drivername" > <el-input v-model="dataForm.drivername" placeholder="请输入司机名称" clearable
<el-input v-model="dataForm.drivername" :style='{"width":"100%"}'>
placeholder="请输入司机名称" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="手机号" <el-form-item label="手机号" prop="contact">
prop="contact" > <el-input v-model="dataForm.contact" placeholder="请输入手机号" clearable
<el-input v-model="dataForm.contact" :style='{"width":"100%"}'>
placeholder="请输入手机号" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="车辆照片" <el-form-item label="车辆照片" prop="vehiclephotos">
prop="vehiclephotos" > <JNPF-UploadImg v-model="dataForm.vehiclephotos" :fileSize="5" sizeUnit="MB" :limit="9">
<JNPF-UploadImg v-model="dataForm.vehiclephotos"
:fileSize="5" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="12" > <!-- <el-col :span="12" >
<el-form-item label="录入人" <el-form-item label="录入人"
prop="creatorusername" > prop="creatorusername" >
<el-input v-model="dataForm.creatorusername" <el-input v-model="dataForm.creatorusername"
@ -67,148 +62,153 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> --> </el-col> -->
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
ticketno : '', visible: false,
drivername : '', loading: false,
contact : '', isDetail: false,
vehiclephotos : [{"name":"006-1 (3).jpg","url":"/api/file/Image/annex/20230105_380637081082287813.jpg","fileId":"20230105_380637081082287813.jpg"},{"name":"微信图片_20220617141029.jpg","url":"/api/file/Image/annex/20230105_380637561959241413.jpg","fileId":"20230105_380637561959241413.jpg"}], dataForm: {
creatorusername : '', ticketno: '',
creatortime : "", drivername: '',
}, contact: '',
rules: vehiclephotos: [{
{ "name": "006-1 (3).jpg",
ticketno: [ "url": "/api/file/Image/annex/20230105_380637081082287813.jpg",
{ "fileId": "20230105_380637081082287813.jpg"
required: true, }, {
message: '请输入车牌号', "name": "微信图片_20220617141029.jpg",
trigger: 'blur' "url": "/api/file/Image/annex/20230105_380637561959241413.jpg",
}, "fileId": "20230105_380637561959241413.jpg"
], }],
drivername: [ creatorusername: '',
{ creatortime: "",
required: true, },
message: '请输入司机名称', rules: {
trigger: 'blur' ticketno: [{
}, required: true,
], message: '请输入车牌号',
}, trigger: 'blur'
}, ],
} drivername: [{
}, required: true,
computed: {}, message: '请输入司机名称',
watch: {}, trigger: 'blur'
created() { }, ],
}, },
mounted() {},
methods: {
clearData(data){
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if(this.dataForm.id){
this.loading = true
request({
url: '/api/example/Vehicle/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/example/Vehicle',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/example/Vehicle/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.vehiclephotos = JSON.stringify(_data.vehiclephotos)
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
_dataAll.vehiclephotos = JSON.parse( _dataAll.vehiclephotos)
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/example/Vehicle/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/example/Vehicle',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/example/Vehicle/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.vehiclephotos = JSON.stringify(_data.vehiclephotos)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.vehiclephotos = JSON.parse(_dataAll.vehiclephotos)
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -47,10 +47,9 @@
<el-table-column prop="drivername" label="司机名称" width="0" align="left" /> <el-table-column prop="drivername" label="司机名称" width="0" align="left" />
<el-table-column prop="contact" label="手机号" width="0" align="left" /> <el-table-column prop="contact" label="手机号" width="0" align="left" />
<el-table-column prop="vehiclephotos" label="车辆照片" width="0" align="left"> <el-table-column prop="vehiclephotos" label="车辆照片" width="0" align="left">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-for="(item,index) in JSON.parse(scope.row.vehiclephotos)" :key="index"> <span v-for="(item,index) in JSON.parse(scope.row.vehiclephotos)" :key="index">
<el-popover placement="left" trigger="click" width="300"> <el-popover placement="bottom" trigger="click" width="1000">
<img :src="`/dev${item.url}`" width="100%" /> <img :src="`/dev${item.url}`" width="100%" />
<img <img
slot="reference" slot="reference"
@ -61,7 +60,6 @@
</el-popover> </el-popover>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="creatorusername" label="录入人" width="0" align="left" /> <el-table-column prop="creatorusername" label="录入人" width="0" align="left" />
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" /> <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />

@ -1,299 +1,336 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1000px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll <el-row :gutter="15" class="">
width="800px"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="150px"
<el-row :gutter="15" class=""> label-position="right">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right" > <template v-if="!loading">
<template v-if="!loading"> <el-col :span="24">
<el-col :span="24" > <el-form-item label="仓库编码" prop="code">
<el-form-item label="仓库编码" <el-input v-model="dataForm.code" placeholder="请输入" clearable :style='{"width":"100%"}'>
prop="code" >
<el-input v-model="dataForm.code"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="公司代码" <el-form-item label="公司代码" prop="companyCode">
prop="companyCode" > <el-input v-model="dataForm.companyCode" placeholder="请输入" clearable
<el-input v-model="dataForm.companyCode" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="公司名称" <el-form-item label="公司名称" prop="companyName">
prop="companyName" > <el-input v-model="dataForm.companyName" placeholder="请输入" clearable
<el-input v-model="dataForm.companyName" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="仓库位置" <el-form-item label="仓库位置" prop="location">
prop="location" > <el-input v-model="dataForm.location" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.location"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="仓库类型" <el-form-item label="仓库类型" prop="type">
prop="type" > <el-select v-model="dataForm.type" placeholder="请选择" clearable :style='{"width":"100%"}'>
<el-select v-model="dataForm.type" <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in typeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="ERP库存组织" <el-form-item label="ERP库存组织" prop="organization">
prop="organization" > <el-select v-model="dataForm.organization" placeholder="请选择" clearable
<el-select v-model="dataForm.organization" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in organizationOptions" :key="index"
<el-option v-for="(item, index) in organizationOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="ERP子库" <el-form-item label="ERP子库" prop="sublibrary">
prop="sublibrary" > <el-select v-model="dataForm.sublibrary" placeholder="请选择" clearable
<el-select v-model="dataForm.sublibrary" :style='{"width":"100%"}'>
placeholder="请选择" clearable :style='{"width":"100%"}'> <el-option v-for="(item, index) in sublibraryOptions" :key="index"
<el-option v-for="(item, index) in sublibraryOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option> :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="激活状态 " <el-form-item label="激活状态 " prop="activestate">
prop="activestate" > <!-- <el-radio-group v-model="dataForm.activestate" size="small">
<el-radio-group v-model="dataForm.activestate" <el-radio v-for="(item, index) in activestateOptions" :key="index" :label="item.id"
size="small" > :disabled="item.disabled">
<el-radio v-for="(item, index) in activestateOptions" :key="index" :label="item.id" :disabled="item.disabled" > {{item.fullName}}
{{item.fullName}} </el-radio>
</el-radio>
</el-radio-group> </el-radio-group> -->
</el-form-item> <el-switch v-model="dataForm.activestate" :active-value="1" :inactive-value="0">
</el-col>
<el-col :span="24" > </el-switch>
<el-form-item label="备注" </el-form-item>
prop="remark" > </el-col>
<el-input v-model="dataForm.remark" <el-col :span="24">
placeholder="请输入" clearable :style='{"width":"100%"}'> <el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建人名称" <el-form-item label="创建人名称" prop="creatorusername">
prop="creatorusername" > <el-input v-model="dataForm.creatorusername" placeholder="请输入" clearable
<el-input v-model="dataForm.creatorusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="创建时间" <el-form-item label="创建时间" prop="creatortime">
prop="creatortime" > <el-date-picker v-model="dataForm.creatortime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.creatortime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改人名称" <el-form-item label="修改人名称" prop="lastmodifyusername">
prop="lastmodifyusername" > <el-input v-model="dataForm.lastmodifyusername" placeholder="请输入" clearable
<el-input v-model="dataForm.lastmodifyusername" :style='{"width":"100%"}'>
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<el-form-item label="修改时间" <el-form-item label="修改时间" prop="lastmodifytime">
prop="lastmodifytime" > <el-date-picker v-model="dataForm.lastmodifytime" placeholder="请选择" clearable
<el-date-picker v-model="dataForm.lastmodifytime" :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" > value-format="timestamp">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
export default { } from '@/api/systemData/dataInterface'
components: {}, import {
props: [], getDictionaryDataSelector
data() { } from '@/api/systemData/dictionary'
return { export default {
visible: false, components: {},
loading: false, props: [],
isDetail: false, data() {
dataForm: { return {
code : '', visible: false,
companyCode : '', loading: false,
companyName : '', isDetail: false,
location : '', dataForm: {
type : "", code: '',
organization : "", companyCode: '',
sublibrary : "", companyName: '',
activestate : "2", location: '',
remark : '', type: "",
creatorusername : '', organization: "",
creatortime : '', sublibrary: "",
lastmodifyusername : '', activestate: "1",
lastmodifytime : '', remark: '',
}, creatorusername: '',
rules: creatortime: '',
{ lastmodifyusername: '',
code: [ lastmodifytime: '',
{ },
required: true, rules: {
message: '请输入', code: [{
trigger: 'blur' required: true,
}, message: '请输入',
], trigger: 'blur'
type: [ }, ],
{ type: [{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], organization: [{
organization: [ required: true,
{ message: '请输入',
required: true, trigger: 'blur'
message: '请输入', }, ],
trigger: 'blur' sublibrary: [{
}, required: true,
], message: '请输入',
sublibrary: [ trigger: 'blur'
{ }, ],
required: true, },
message: '请输入', typeOptions: [{
trigger: 'blur' "fullName": "原料库",
}, "id": "0"
], }, {
}, "fullName": "中间库",
typeOptions:[{"fullName":"原料库","id":"0"},{"fullName":"中间库","id":"1"},{"fullName":"成品库","id":"2"},{"fullName":"副产品库","id":"3"},{"fullName":"废次品库","id":"4"},{"fullName":"备件辅材库","id":"5"},{"fullName":"贸易虚拟库","id":"6"},{"fullName":"仓储库","id":"7"},{"fullName":"能源库","id":"8"},{"fullName":"其他库","id":"9"},{"fullName":"帐外库","id":"10"}], "id": "1"
organizationOptions:[{"fullName":"济钢集团","id":"0"},{"fullName":"日照","id":"1"}], }, {
sublibraryOptions:[{"fullName":"城市矿产钢材库","id":"0"},{"fullName":"黄河爆破待发库","id":"1"},{"fullName":"黄河爆破完工库","id":"2"}], "fullName": "成品库",
activestateOptions:[{"fullName":"激活","id":"1"},{"fullName":"未激活","id":"0"}], "id": "2"
}, {
} "fullName": "副产品库",
}, "id": "3"
computed: {}, }, {
watch: {}, "fullName": "废次品库",
created() { "id": "4"
}, }, {
mounted() {}, "fullName": "备件辅材库",
methods: { "id": "5"
clearData(data){ }, {
for (let key in data) { "fullName": "贸易虚拟库",
if (data[key] instanceof Array) { "id": "6"
data[key] = []; }, {
} else if (data[key] instanceof Object) { "fullName": "仓储库",
this.clearData(data[key]); "id": "7"
} else { }, {
data[key] = ""; "fullName": "能源库",
} "id": "8"
} }, {
}, "fullName": "其他库",
init(id, isDetail) { "id": "9"
this.dataForm.id = id || 0; }, {
this.visible = true; "fullName": "帐外库",
this.isDetail = isDetail || false; "id": "10"
this.$nextTick(() => { }],
this.$refs['elForm'].resetFields(); organizationOptions: [{
if(this.dataForm.id){ "fullName": "济钢集团",
this.loading = true "id": "0"
request({ }, {
url: '/api/warehouse/Warehouse/'+this.dataForm.id, "fullName": "日照",
method: 'get' "id": "1"
}).then(res => { }],
this.dataInfo(res.data) sublibraryOptions: [{
this.loading = false "fullName": "城市矿产钢材库",
}); "id": "0"
}else{ }, {
this.clearData(this.dataForm) "fullName": "黄河爆破待发库",
} "id": "1"
}); }, {
this.$store.commit('generator/UPDATE_RELATION_DATA', {}) "fullName": "黄河爆破完工库",
}, "id": "2"
// }],
dataFormSubmit() { /* activestateOptions: [{
this.$refs['elForm'].validate((valid) => { "fullName": "激活",
if (valid) { "id": "1"
this.request() }, {
} "fullName": "未激活",
}) "id": "0"
}, }], */
request() {
var _data =this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/warehouse/Warehouse',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}else{
request({
url: '/api/warehouse/Warehouse/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList(){
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
},
}
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/warehouse/Warehouse/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
dataFormSubmit() {
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/warehouse/Warehouse',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/warehouse/Warehouse/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
},
}
</script> </script>

@ -1,309 +1,414 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16"> <el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="激活状态 "> <el-form-item label="激活状态 ">
<el-select v-model="query.activestate" placeholder="请选择" <el-select v-model="query.activestate" placeholder="请选择" clearable>
clearable> <el-option v-for="(item, index) in activestateOptions" :key="index"
<el-option v-for="(item, index) in activestateOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled"></el-option>
:label="item.fullName" :value="item.id" </el-select>
:disabled="item.disabled"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item label="仓库编码">
<el-col :span="6"> <el-input v-model="query.code" placeholder="请输入" clearable> </el-input>
<el-form-item label="仓库编码"> </el-form-item>
<el-input v-model="query.code" placeholder="请输入" clearable> </el-input> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item>
<el-col :span="6"> <el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-form-item> <el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> </el-form-item>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> </el-col>
</el-form-item> </el-form>
</el-col> </el-row>
</el-form> <div class="JNPF-common-layout-main JNPF-flex-main">
</el-row> <div class="JNPF-common-head">
<div class="JNPF-common-layout-main JNPF-flex-main"> <div>
<div class="JNPF-common-head"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
<div> </el-button>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()" >导出 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()" >批量删除 </div>
</el-button> <div class="JNPF-common-head-right">
</div> <el-tooltip effect="dark" content="刷新" placement="top">
<div class="JNPF-common-head-right"> <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
<el-tooltip effect="dark" content="刷新" placement="top"> @click="reset()" />
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" </el-tooltip>
@click="reset()"/> <screenfull isContainer />
</el-tooltip> </div>
<screenfull isContainer/> </div>
</div> <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c
</div> @selection-change="handleSelectionChange">
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"> <el-table-column prop="code" label="仓库编码" width="0" align="left" />
<el-table-column prop="code" label="仓库编码" width="0" align="left" <el-table-column label="激活状态 " width="0" prop="activestate" algin="left">
/> <template slot-scope="scope">
<el-table-column label="激活状态 " width="0" prop="activestate" algin="left" {{ scope.row.activestate | dynamicText(activestateOptions) }}
> </template>
<template slot-scope="scope"> </el-table-column>
{{ scope.row.activestate | dynamicText(activestateOptions) }} <el-table-column prop="companyCode" label="公司代码" width="0" align="left" />
</template> <el-table-column prop="companyName" label="公司名称" width="0" align="left" />
</el-table-column> <el-table-column label="仓库类型" width="0" prop="type" algin="left">
<el-table-column prop="companyCode" label="公司代码" width="0" align="left" <template slot-scope="scope">
/> {{ scope.row.type | dynamicText(typeOptions) }}
<el-table-column prop="companyName" label="公司名称" width="0" align="left" </template>
/> </el-table-column>
<el-table-column label="仓库类型" width="0" prop="type" algin="left" <el-table-column label="ERP库存组织" width="0" prop="organization" algin="left">
> <template slot-scope="scope">
<template slot-scope="scope"> {{ scope.row.organization | dynamicText(organizationOptions) }}
{{ scope.row.type | dynamicText(typeOptions) }} </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="ERP子库" width="0" prop="sublibrary" algin="left">
<el-table-column label="ERP库存组织" width="0" prop="organization" algin="left" <template slot-scope="scope">
> {{ scope.row.sublibrary | dynamicText(sublibraryOptions) }}
<template slot-scope="scope"> </template>
{{ scope.row.organization | dynamicText(organizationOptions) }} </el-table-column>
</template> <el-table-column prop="location" label="仓库位置" width="0" align="left" />
</el-table-column> <el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" />
<el-table-column label="ERP子库" width="0" prop="sublibrary" algin="left" <el-table-column prop="creatortime" label="创建时间" width="0" align="left" />
> <el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" />
<template slot-scope="scope"> <el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" />
{{ scope.row.sublibrary | dynamicText(sublibraryOptions) }} <el-table-column prop="remark" label="备注" width="0" align="left" />
</template> <el-table-column label="操作" fixed="right" width="100">
</el-table-column> <template slot-scope="scope">
<el-table-column prop="location" label="仓库位置" width="0" align="left" <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">
/> </el-button>
<el-table-column prop="creatorusername" label="创建人名称" width="0" align="left" <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
/> </el-button>
<el-table-column prop="creatortime" label="创建时间" width="0" align="left" </template>
/> </el-table-column>
<el-table-column prop="lastmodifyusername" label="修改人名称" width="0" align="left" </JNPF-table>
/> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize"
<el-table-column prop="lastmodifytime" label="修改时间" width="0" align="left" @pagination="initData" />
/> </div>
<el-table-column prop="remark" label="备注" width="0" align="left" </div>
/> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<el-table-column label="操作" fixed="right" <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
width="100" > <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false" />
<template slot-scope="scope"> </div>
<el-button type="text"
@click="addOrUpdateHandle(scope.row.id)" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import {getDictionaryDataSelector} from '@/api/systemData/dictionary' import {
import JNPFForm from './Form' getDictionaryDataSelector
import ExportBox from './ExportBox' } from '@/api/systemData/dictionary'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface' import JNPFForm from './Form'
import Detail from './Detail' import ExportBox from './ExportBox'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import Detail from './Detail'
export default { export default {
components: {JNPFForm, ExportBox,Detail}, components: {
data() { JNPFForm,
return { ExportBox,
detailVisible: false, Detail
query: { },
activestate:undefined, data() {
code:undefined, return {
}, detailVisible: false,
treeProps: { query: {
children: 'children', activestate: undefined,
label: 'fullName', code: undefined,
value: 'id' },
}, treeProps: {
list: [], children: 'children',
listLoading: true, label: 'fullName',
multipleSelection: [], total: 0, value: 'id'
listQuery: { },
currentPage: 1, list: [],
pageSize: 20, listLoading: true,
sort: "desc", multipleSelection: [],
sidx: "", total: 0,
}, listQuery: {
formVisible: false, currentPage: 1,
exportBoxVisible: false, pageSize: 20,
columnList: [ sort: "desc",
{prop: 'code', label: '仓库编码'}, sidx: "",
{prop: 'activestate', label: '激活状态 '}, },
{prop: 'companyCode', label: '公司代码'}, formVisible: false,
{prop: 'companyName', label: '公司名称'}, exportBoxVisible: false,
{prop: 'type', label: '仓库类型'}, columnList: [{
{prop: 'organization', label: 'ERP库存组织'}, prop: 'code',
{prop: 'sublibrary', label: 'ERP子库'}, label: '仓库编码'
{prop: 'location', label: '仓库位置'}, },
{prop: 'creatorusername', label: '创建人名称'}, {
{prop: 'creatortime', label: '创建时间'}, prop: 'activestate',
{prop: 'lastmodifyusername', label: '修改人名称'}, label: '激活状态 '
{prop: 'lastmodifytime', label: '修改时间'}, },
{prop: 'remark', label: '备注'}, {
], prop: 'companyCode',
typeOptions:[{"fullName":"原料库","id":"0"},{"fullName":"中间库","id":"1"},{"fullName":"成品库","id":"2"},{"fullName":"副产品库","id":"3"},{"fullName":"废次品库","id":"4"},{"fullName":"备件辅材库","id":"5"},{"fullName":"贸易虚拟库","id":"6"},{"fullName":"仓储库","id":"7"},{"fullName":"能源库","id":"8"},{"fullName":"其他库","id":"9"},{"fullName":"帐外库","id":"10"}], label: '公司代码'
typeProps:{"label":"fullName","value":"id"}, },
organizationOptions:[{"fullName":"济钢集团","id":"0"},{"fullName":"日照","id":"1"}], {
organizationProps:{"label":"fullName","value":"id"}, prop: 'companyName',
sublibraryOptions:[{"fullName":"城市矿产钢材库","id":"0"},{"fullName":"黄河爆破待发库","id":"1"},{"fullName":"黄河爆破完工库","id":"2"}], label: '公司名称'
sublibraryProps:{"label":"fullName","value":"id"}, },
activestateOptions:[{"fullName":"激活","id":"1"},{"fullName":"未激活","id":"0"}], {
activestateProps:{"label":"fullName","value":"id"}, prop: 'type',
} label: '仓库类型'
}, },
computed: { {
menuId() { prop: 'organization',
return this.$route.meta.modelId || '' label: 'ERP库存组织'
} },
}, {
created() { prop: 'sublibrary',
this.initData() label: 'ERP子库'
}, },
methods: { {
goDetail(id){ prop: 'location',
this.detailVisible = true label: '仓库位置'
this.$nextTick(() => { },
this.$refs.Detail.init(id) {
}) prop: 'creatorusername',
}, label: '创建人名称'
sortChange({column, prop, order}) { },
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' {
this.listQuery.sidx = !order ? '' : prop prop: 'creatortime',
this.initData() label: '创建时间'
}, },
initData() { {
this.listLoading = true; prop: 'lastmodifyusername',
let _query = { label: '修改人名称'
...this.listQuery, },
...this.query, {
menuId:this.menuId prop: 'lastmodifytime',
}; label: '修改时间'
request({ },
url: `/api/warehouse/Warehouse/getList`, {
method: 'post', prop: 'remark',
data: _query label: '备注'
}).then(res => { },
var _list =[]; ],
for(let i=0;i<res.data.list.length;i++){ typeOptions: [{
let _data = res.data.list[i]; "fullName": "原料库",
_list.push(_data) "id": "0"
} }, {
this.list = _list "fullName": "中间库",
this.total = res.data.pagination.total "id": "1"
}, {
"fullName": "成品库",
"id": "2"
}, {
"fullName": "副产品库",
"id": "3"
}, {
"fullName": "废次品库",
"id": "4"
}, {
"fullName": "备件辅材库",
"id": "5"
}, {
"fullName": "贸易虚拟库",
"id": "6"
}, {
"fullName": "仓储库",
"id": "7"
}, {
"fullName": "能源库",
"id": "8"
}, {
"fullName": "其他库",
"id": "9"
}, {
"fullName": "帐外库",
"id": "10"
}],
typeProps: {
"label": "fullName",
"value": "id"
},
organizationOptions: [{
"fullName": "济钢集团",
"id": "0"
}, {
"fullName": "日照",
"id": "1"
}],
organizationProps: {
"label": "fullName",
"value": "id"
},
sublibraryOptions: [{
"fullName": "城市矿产钢材库",
"id": "0"
}, {
"fullName": "黄河爆破待发库",
"id": "1"
}, {
"fullName": "黄河爆破完工库",
"id": "2"
}],
sublibraryProps: {
"label": "fullName",
"value": "id"
},
activestateOptions: [{
"fullName": "激活",
"id": "1"
}, {
"fullName": "未激活",
"id": "0"
}],
activestateProps: {
"label": "fullName",
"value": "id"
},
}
},
computed: {
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.initData()
},
methods: {
goDetail(id) {
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({
column,
prop,
order
}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({
url: `/api/warehouse/Warehouse/getList`,
method: 'post',
data: _query
}).then(res => {
var _list = [];
for (let i = 0; i < res.data.list.length; i++) {
let _data = res.data.list[i];
_list.push(_data)
}
this.list = _list
this.total = res.data.pagination.total
this.listLoading = false this.listLoading = false
}) })
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
request({ request({
url: `/api/warehouse/Warehouse/${id}`, url: `/api/warehouse/Warehouse/${id}`,
method: 'DELETE' method: 'DELETE'
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData()
} }
}); });
}) })
}).catch(() => { }).catch(() => {});
}); },
}, handleSelectionChange(val) {
handleSelectionChange(val) { const res = val.map(item => item.id)
const res = val.map(item => item.id) this.multipleSelection = res
this.multipleSelection = res },
}, handleBatchRemoveDel() {
handleBatchRemoveDel() { if (!this.multipleSelection.length) {
if (!this.multipleSelection.length) { this.$message({
this.$message({ type: 'error',
type: 'error', message: '请选择一条数据',
message: '请选择一条数据', duration: 1500,
duration: 1500, })
}) return
return }
} const ids = this.multipleSelection.join()
const ids = this.multipleSelection.join() this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { type: 'warning'
type: 'warning' }).then(() => {
}).then(() => { request({
request({ url: `/api/warehouse/Warehouse/batchRemove/${ids}`,
url: `/api/warehouse/Warehouse/batchRemove/${ids}`, method: 'DELETE'
method: 'DELETE' }).then(res => {
}).then(res => { this.$message({
this.$message({ type: 'success',
type: 'success', message: res.msg,
message: res.msg, onClose: () => {
onClose: () => { this.initData()
this.initData() }
} });
}); })
}) }).catch(() => {})
}).catch(() => { },
}) addOrUpdateHandle(id, isDetail) {
}, this.formVisible = true
addOrUpdateHandle(id, isDetail) { this.$nextTick(() => {
this.formVisible = true this.$refs.JNPFForm.init(id, isDetail)
this.$nextTick(() => { })
this.$refs.JNPFForm.init(id, isDetail) },
}) exportData() {
}, this.exportBoxVisible = true
exportData() { this.$nextTick(() => {
this.exportBoxVisible = true this.$refs.ExportBox.init(this.columnList)
this.$nextTick(() => { })
this.$refs.ExportBox.init(this.columnList) },
}) download(data) {
}, let query = {
download(data) { ...data,
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} ...this.listQuery,
request({ ...this.query,
url: `/api/warehouse/Warehouse/Actions/Export`, menuId: this.menuId
method: 'GET', }
data: query request({
}).then(res => { url: `/api/warehouse/Warehouse/Actions/Export`,
if (!res.data.url) return method: 'GET',
this.jnpf.downloadFile(res.data.url) data: query
this.$refs.ExportBox.visible = false }).then(res => {
this.exportBoxVisible = false if (!res.data.url) return
}) this.jnpf.downloadFile(res.data.url)
}, this.$refs.ExportBox.visible = false
search() { this.exportBoxVisible = false
this.listQuery = { })
currentPage: 1, },
pageSize: 20, search() {
sort: "desc", this.listQuery = {
sidx: "", currentPage: 1,
} pageSize: 20,
this.initData() sort: "desc",
}, sidx: "",
refresh(isrRefresh) { }
this.formVisible = false this.initData()
if (isrRefresh) this.reset() },
}, refresh(isrRefresh) {
reset() { this.formVisible = false
for (let key in this.query) { if (isrRefresh) this.reset()
this.query[key] = undefined },
} reset() {
this.search() for (let key in this.query) {
} this.query[key] = undefined
} }
} this.search()
}
}
}
</script> </script>

Loading…
Cancel
Save