liwei 3 years ago
parent
commit
582bc5d88f
5 changed files with 316 additions and 1 deletions
  1. +24
    -0
      src/common/workshop.js
  2. +2
    -0
      src/main.js
  3. +4
    -1
      src/server/api.js
  4. +185
    -0
      src/views/system/printer/printertab/addOrEdit.vue
  5. +101
    -0
      src/views/system/printer/printertab/index.vue

+ 24
- 0
src/common/workshop.js View File

@ -0,0 +1,24 @@
import { get } from "@/server/api.js";
// 获取工厂列表
export function getWorkshopList() {
let workshopArray = JSON.parse(localStorage.getItem('workshop')) || []
if (workshopArray.length < 1) {
get('/user/plants').then(res => {
localStorage.setItem('workshop', JSON.stringify(res.data))
workshopArray = res.data
})
}
return workshopArray
}
// 根据pid获取工厂名字
export function getValue(item) {
let workshop = ''
const temArray = getWorkshopList()
temArray.forEach(obj => {
if (item === obj['Plant-PlantNr']) {
workshop = obj['Plant-Name1']
return workshop
}
})
return workshop
}

+ 2
- 0
src/main.js View File

@ -11,6 +11,7 @@ import locale from "element-plus/lib/locale/lang/zh-cn";
import Pagination from "@/components/Pagination";
import { getStanderOne } from "@/server/api.js";
import { getColumnName } from "@/utils/allField.js";
import { getValue } from '@/common/workshop'
import { parseTime, resetForm } from "@/utils/costum";
import SvgIcon from '@/components/SvgIcon' // svg组件
import SearchTemplate from "@/components/SearchTemplate.vue";
@ -27,6 +28,7 @@ app.component('ContentContainer', ContentContainer)
app.component("Pagination", Pagination);
app.config.globalProperties.getStanderOne = getStanderOne;
app.config.globalProperties.getColumnName = getColumnName;
app.config.globalProperties.getValue = getValue;
app.config.globalProperties.parseTime = parseTime;
app.config.globalProperties.resetForm = resetForm;
app.config.globalProperties.msgSuccess = function (msg) {


+ 4
- 1
src/server/api.js View File

@ -24,12 +24,15 @@ export const deleteData = (url, params) =>
method: "delete",
params,
});
// 标准定义
export const getStanderOne = (params) =>
service.request({
url: "/admin/etl/stdef/query",
url: "/admin/base/stdef/query",
method: "get",
params,
});
export const uploadExcel = (param, sourceType) =>
service.request({
url: "/admin/etl/datatablehead/uploadexcel?taskId=" + sourceType,


+ 185
- 0
src/views/system/printer/printertab/addOrEdit.vue View File

@ -0,0 +1,185 @@
<template>
<el-dialog :title="title" model-value width="900px" :close-on-click-modal="false" :before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="160px">
<el-row>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PlantNr')" prop="Printer-PlantNr">
<el-select v-model="form['Printer-PlantNr']" placeholder="请选择车间" :disabled="item">
<el-option
v-for="item in options"
:key="item['Plant-PlantNr']"
:label="item['Plant-Name1']"
:value="item['Plant-PlantNr']"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PrinterId')" prop="Printer-PrinterId">
<el-input v-model="form['Printer-PrinterId']" placeholder="请输入" :disabled="item" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-Active')">
<el-radio-group v-model="form['Printer-Active']">
<el-radio
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{ dict.dictLabel }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-Descr')">
<el-input v-model="form['Printer-Descr']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PrinterType')" prop="Printer-PrinterType">
<el-select v-model="form['Printer-PrinterType']" placeholder="请选择">
<el-option
v-for="item in typeArray"
:key="item['Stdef-StdefTyp']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PrinterName')">
<el-input v-model="form['Printer-PrinterName']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-IpAddress')">
<el-input v-model="form['Printer-IpAddress']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-Port')">
<el-input v-model.number="form['Printer-Port']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PrintInterval')">
<el-input v-model="form['Printer-PrintInterval']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PageSize')">
<el-input v-model="form['Printer-PageSize']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('Printer-PrinterSpec')">
<el-input v-model="form['Printer-PrinterSpec']" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button type="primary" class="dialog-submit-button" @click="submitForm"> </el-button>
<el-button class="dialog-cancel-button" @click="cancel"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { get, post, put } from "@/server/api.js";
import { getWorkshopList } from '@/common/workshop'
export default {
name: 'editField',
props: {
item: {
default: null,
}
},
mounted() {
if (this.item) {
this.handleUpdate(this.item)
} else {
this.handleAdd()
}
},
data() {
return {
options: [], //
typeArray: [],
title: '添加', //
statusOptions: [ //
{ dictLabel: '启用', dictValue: 1 },
{ dictLabel: '停用', dictValue: 0 }
],
form: {
'Printer-Active': 1
}, //
rules: {
'Printer-PlantNr': [
{ required: true, type: 'integer', message: '此项不能为空', trigger: 'blur' }
],
'Printer-PrinterId': [
{ required: true, message: '此项不能为空', trigger: 'blur' }
]
},
url: {
updateUrl: "/admin/base/printer/updateone", //
addUrl: "/admin/base/printer/insertone", //
},
}
},
created() {
this.options = getWorkshopList()
this.getStanderOne({ statid: 'Printer-PrinterType' }).then(res => {
this.typeArray = res.data.records || []
})
},
methods: {
cancel() { //
this.$emit('update:isShowDialog','')
},
handleAdd() { //
this.title = '添加'
},
handleUpdate(row) { //
get(`/admin/base/printer/selectone/${row['Printer-PrinterId']}`).then(res => {
this.form = res.data
this.title = '修改'
})
},
submitForm() { //
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form['Printer-Port']) {
this.form['Printer-Port'] = parseInt(this.form['Printer-Port'])
}
if (this.form['Printer-PrintInterval']) {
this.form['Printer-PrintInterval'] = parseInt(this.form['Printer-PrintInterval'])
}
if (this.item) {
put(this.url.updateUrl, this.form).then(res => {
if (res.code === 200) {
this.msgSuccess('修改成功')
this.$emit('editCallBack')
} else {
this.msgError(res.msg)
}
})
} else {
post(this.url.addUrl, this.form).then(res => {
if (res.code === 200) {
this.msgSuccess('新增成功')
this.$emit('editCallBack')
} else {
this.msgError(res.msg)
}
})
}
}
})
},
}
}
</script>

+ 101
- 0
src/views/system/printer/printertab/index.vue View File

@ -0,0 +1,101 @@
<template>
<div>
<SearchTemplate>
<el-form :inline="true" class="clearfix search-content">
<el-form-item label="打印ID">
<el-input
v-model.trim="queryParams.printerid"
placeholder="请输入查询内容"
clearable
style="width: 240px"
/>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" class="search-button-style" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" class="reset-button-style" @click="resetQuery">重置</el-button>
</el-form-item>
<el-form-item class="fr">
<el-button icon="el-icon-plus" class="add-button-style" @click="handleAdd">新增</el-button>
</el-form-item>
</el-form>
</SearchTemplate>
<ContentContainer>
<el-table :data="tableData" v-loading="loading" size="small" style="width: 100%" border>
<el-table-column v-for="(item, index) in headers" :key="index" :label="getColumnName(item)" :show-overflow-tooltip="true" width="200">
<template #default="scope">
<span v-if="item === 'Printer-PlantNr'">{{ getValue(scope.row['Printer-PlantNr']) }}</span>
<span v-else-if="item === 'Printer-LastModify'"> {{ parseTime(scope.row[item]) }} </span>
<span v-else-if="item === 'Printer-CreateTime'"> {{ parseTime(scope.row[item]) }} </span>
<span v-else-if="item === 'Printer-Active'"> {{ scope.row[item] === 1 ? '是' : '否' }} </span>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template #default="scope">
<el-button class="edit-button-style" @click="handleUpdate(scope.row)" icon="el-icon-edit" size="small">修改</el-button>
<el-button class="edit-button-style" @click="handleDelete(scope.row)" icon="el-icon-delete" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination v-show="pagination.total>0" v-model:pagination="pagination" @change="getList" />
</ContentContainer>
<AddOrEdit v-if="isShowDialog === 'edit' ? true : false" :item="item" v-model:isShowDialog="isShowDialog" @editCallBack="completeCallBack" />
</div>
</template>
<script>
import { ListMixin } from "@/mixins/ListMixin";
import AddOrEdit from "./addOrEdit.vue";
export default {
components: {
AddOrEdit
},
mixins: [ListMixin],
data() {
return {
pagination: {
//
pageNumber: 1,
_pageSize: 10,
total: 0,
},
queryTableDataUrl: "/admin/base/printer/query",
headers: [
'Printer-PlantNr',
'Printer-PrinterId',
'Printer-Descr',
'Printer-PrinterType',
'Printer-PrinterName',
'Printer-IpAddress',
'Printer-Active',
'Printer-PrinterSpec',
'Printer-PageSize',
'Printer-Port',
'Printer-PrintInterval',
'Printer-LastModify',
'Printer-LastUser',
'Printer-CreateTime'
],
};
},
methods: {
//
handleQuery() {
this.pagination.pageNumber = 1
this.getList()
},
//
resetQuery() {
this.queryParams.printerid = undefined
this.handleQuery()
},
//
handleDelete(row) {
let keyName = row['Printer-PrinterId']
let deteleUrl = `/admin/base/printer/deleteone/${row['Printer-PrinterId']}`
// 12
this.delHanle(keyName, deteleUrl)
}
},
};
</script>

Loading…
Cancel
Save