Browse Source

更新

master
常熟吴彦祖 3 weeks ago
parent
commit
68ad84d405
  1. 13
      src/api/baseInformation/srmPartFamily.js
  2. 13
      src/api/baseInformation/srmUm.js
  3. 40
      src/views/modules/srmBaseInformation/srmDeliveryTerm.vue
  4. 477
      src/views/modules/srmBaseInformation/srmPartFamily.vue
  5. 58
      src/views/modules/srmBaseInformation/srmPaymentTerm.vue
  6. 54
      src/views/modules/srmBaseInformation/srmSupplierCurrency.vue
  7. 62
      src/views/modules/srmBaseInformation/srmSupplierGroup.vue
  8. 56
      src/views/modules/srmBaseInformation/srmTax.vue
  9. 372
      src/views/modules/srmBaseInformation/srmUm.vue
  10. 8
      src/views/modules/srmSupplier/com_supplierShare_share.vue
  11. 16
      src/views/modules/srmSupplier/supplierShare.vue

13
src/api/baseInformation/srmPartFamily.js

@ -0,0 +1,13 @@
import { createAPI } from '@/utils/httpRequest.js'
// 获取产品分类列表 - rqrq
export const getPartFamilyListPaging = (params) => createAPI('/srmPartFamily/getPartFamilyListPaging', 'POST', params)
// 新增产品分类
export const savePartFamily = (params) => createAPI('/srmPartFamily/savePartFamily', 'POST', params)
// 更新产品分类
export const updatePartFamily = (params) => createAPI('/srmPartFamily/updatePartFamily', 'POST', params)
// 删除产品分类
export const deletePartFamily = (params) => createAPI('/srmPartFamily/deletePartFamily', 'POST', params)

13
src/api/baseInformation/srmUm.js

@ -0,0 +1,13 @@
import { createAPI } from '@/utils/httpRequest.js'
// 获取计量单位列表 - rqrq
export const getUmListPaging = (params) => createAPI('/srmUm/getUmListPaging', 'POST', params)
// 新增计量单位
export const saveUm = (params) => createAPI('/srmUm/saveUm', 'POST', params)
// 更新计量单位
export const updateUm = (params) => createAPI('/srmUm/updateUm', 'POST', params)
// 删除计量单位
export const deleteUm = (params) => createAPI('/srmUm/deleteUm', 'POST', params)

40
src/views/modules/srmBaseInformation/srmDeliveryTerm.vue

@ -69,22 +69,30 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="交货条款" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="350px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="交货条款编码" prop="deliveryTermId">
<el-input v-model="modalData.deliveryTermId" :disabled="modalDisableFlag" style="width: 100px"></el-input>
</el-form-item>
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="交货条款描述" prop="deliveryTerm">
<el-input v-model="modalData.deliveryTerm" style="width: 300px"></el-input>
</el-form-item>
<el-dialog title="交货条款" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="500px">
<el-form label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px; margin-right: 7px;" ref="modalForm">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="交货条款编码" prop="deliveryTermId">
<el-input v-model="modalData.deliveryTermId" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="交货条款描述" prop="deliveryTerm">
<el-input v-model="modalData.deliveryTerm" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>

477
src/views/modules/srmBaseInformation/srmPartFamily.vue

@ -0,0 +1,477 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData">
<el-form-item label="编码">
<el-input v-model="searchData.familyId" clearable style="width: 140px"></el-input>
</el-form-item>
<el-form-item label="名称">
<el-input v-model="searchData.familyName" clearable style="width: 180px"></el-input>
</el-form-item>
<el-form-item label="是否在用">
<el-select v-model="searchData.active" clearable style="width: 120px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button v-if="authSearch" type="primary" @click="getDataList()">查询</el-button>
<el-button v-if="authSave" type="primary" @click="addModal()">新增</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">
{{ formatCellValue(item.columnProp, scope.row[item.columnProp]) }}
</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="120"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" v-if="authUpdate" @click="updateModal(scope.row)">编辑 |</el-link>
<el-link style="cursor: pointer" v-if="authDelete" @click="deletePartFamilyHandle(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog :title="modalTitle" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="520px">
<el-form label-position="top" :model="modalData" :rules="rules" ref="modalForm" style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="编码" prop="familyId">
<el-input v-model="modalData.familyId" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否在用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="名称" prop="familyName">
<el-input v-model="modalData.familyName" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
getPartFamilyListPaging,
savePartFamily,
updatePartFamily,
deletePartFamily
} from '@/api/baseInformation/srmPartFamily.js'
export default {
name: 'srmPartFamily',
watch: {
searchData: {
deep: true,
handler: function () {
this.searchData.familyId = (this.searchData.familyId || '').toUpperCase()
}
},
modalData: {
deep: true,
handler: function () {
this.modalData.familyId = (this.modalData.familyId || '').toUpperCase()
}
}
},
data () {
const functionId = this.$route.meta.menuId || 'srmPartFamily'
return {
height: 200,
dataList: [],
dataListLoading: false,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
searchData: {
site: this.$store.state.user.site,
familyId: '',
familyName: '',
active: '',
page: 1,
limit: 10
},
modalFlag: false,
modalTitle: '',
modalDisableFlag: false,
modalData: {
site: this.$store.state.user.site,
familyId: '',
familyName: '',
active: 'Y',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
showInQueryFlag: '',
flag: '1'
},
columnList: [
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableFamilyId',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'familyId',
headerAlign: 'center',
align: 'center',
columnLabel: '编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableFamilyName',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'familyName',
headerAlign: 'center',
align: 'left',
columnLabel: '名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableActive',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'active',
headerAlign: 'center',
align: 'center',
columnLabel: '是否在用',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
// {
// userId: this.$store.state.user.name,
// functionId: functionId,
// serialNumber: 'srmPartFamilyTableShowInQueryFlag',
// tableId: 'srmPartFamilyTable',
// tableName: '',
// columnProp: 'showInQueryFlag',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 120
// },
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableCreateDate',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'createDate',
headerAlign: 'center',
align: 'center',
columnLabel: '创建日期',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableCreateBy',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'createBy',
headerAlign: 'center',
align: 'center',
columnLabel: '创建人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableUpdateDate',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'updateDate',
headerAlign: 'center',
align: 'center',
columnLabel: '更新日期',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmPartFamilyTableUpdateBy',
tableId: 'srmPartFamilyTable',
tableName: '产品分类表',
columnProp: 'updateBy',
headerAlign: 'center',
align: 'center',
columnLabel: '更新人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
}
],
rules: {
familyId: [
{ required: true, message: ' ', trigger: 'blur' }
],
familyName: [
{ required: true, message: ' ', trigger: 'blur' }
],
active: [
{ required: true, message: ' ', trigger: 'change' }
]
},
authSearch: false,
authSave: false,
authUpdate: false,
authDelete: false,
menuId: functionId
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 180
})
},
created () {
this.getButtonAuthData()
this.getDataList()
},
methods: {
formatCellValue (columnProp, value) {
if (columnProp === 'createDate' || columnProp === 'updateDate') {
return value ? this.dayjs(value).format('YYYY-MM-DD HH:mm:ss') : ''
}
return value
},
getDataList () {
this.dataListLoading = true
const params = {
...this.searchData,
site: this.$store.state.user.site,
page: this.pageIndex,
limit: this.pageSize
}
getPartFamilyListPaging(params).then(({ data }) => {
if (data && data.code === 0) {
const pageData = data.data || data.page
this.dataList = pageData && pageData.list ? pageData.list : pageData
if (pageData && pageData.currPage) {
this.pageIndex = pageData.currPage
this.pageSize = pageData.pageSize
this.totalPage = pageData.totalCount
} else {
this.totalPage = this.dataList ? this.dataList.length : 0
}
} else {
this.$message.error((data && data.msg) || '获取数据失败')
}
}).catch(error => {
console.error('获取产品分类失败:', error)
this.$message.error('获取数据失败: ' + (error.message || '网络错误'))
}).finally(() => {
this.dataListLoading = false
})
},
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
addModal () {
this.modalTitle = '新增产品分类'
this.modalDisableFlag = false
this.modalData = {
site: this.$store.state.user.site || '',
familyId: '',
familyName: '',
active: 'Y',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
showInQueryFlag: '',
flag: '1'
}
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
this.modalFlag = true
},
updateModal (row) {
this.modalTitle = '编辑产品分类'
this.modalDisableFlag = true
this.modalData = {
site: row.site,
familyId: row.familyId,
familyName: row.familyName,
active: row.active,
createBy: row.createBy,
updateBy: this.$store.state.user.name,
showInQueryFlag: row.showInQueryFlag,
flag: '2'
}
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
this.modalFlag = true
},
saveData () {
this.$refs.modalForm.validate((valid) => {
if (!valid) {
return false
}
const inData = { ...this.modalData }
const apiCall = inData.flag === '1' ? savePartFamily : updatePartFamily
apiCall(inData).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('操作成功')
this.modalFlag = false
this.getDataList()
} else {
this.$message.error((data && data.msg) || '操作失败')
}
}).catch(error => {
console.error('保存产品分类失败:', error)
this.$message.error('保存失败: ' + (error.message || '网络错误'))
})
})
},
deletePartFamilyHandle (row) {
this.$confirm(`确定删除此产品分类吗?编码:${row.familyId}`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deletePartFamily({
site: row.site,
familyId: row.familyId
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('删除成功')
this.getDataList()
} else {
this.$message.error((data && data.msg) || '删除失败')
}
}).catch(error => {
console.error('删除产品分类失败:', error)
this.$message.error('删除失败: ' + (error.message || '网络错误'))
})
}).catch(() => {
this.$message.info('已取消删除')
})
},
// - rqrq
getButtonAuthData () {
let searchFlag = this.isAuth(this.menuId + ':search')
let saveFlag = this.isAuth(this.menuId + ':save')
let updateFlag = this.isAuth(this.menuId + ':update')
let deleteFlag = this.isAuth(this.menuId + ':delete')
this.authSearch = !searchFlag
this.authSave = !saveFlag
this.authUpdate = !updateFlag
this.authDelete = !deleteFlag
}
}
}
</script>
<style scoped>
.mod-config {
padding: 0;
}
</style>

58
src/views/modules/srmBaseInformation/srmPaymentTerm.vue

@ -71,28 +71,42 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="付款条款" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="415px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="付款条款编码" prop="paymentTermId">
<el-input v-model="modalData.paymentTermId" :disabled="modalDisableFlag" style="width: 90px"></el-input>
</el-form-item>
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 80px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label="天数" prop="days">
<el-input v-model.number="modalData.days" style="width: 80px"></el-input>
</el-form-item>
<el-form-item label="类型" prop="type">
<el-input v-model="modalData.type" style="width: 80px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="付款条款描述" prop="paymentTerm">
<el-input v-model="modalData.paymentTerm" style="width: 325px"></el-input>
</el-form-item>
<el-dialog title="付款条款" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="560px">
<el-form label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px; margin-right: 7px;" ref="modalForm">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="付款条款编码" prop="paymentTermId">
<el-input v-model="modalData.paymentTermId" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="天数" prop="days">
<el-input v-model.number="modalData.days"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-input v-model="modalData.type"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="付款条款描述" prop="paymentTerm">
<el-input v-model="modalData.paymentTerm" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>

54
src/views/modules/srmBaseInformation/srmSupplierCurrency.vue

@ -72,28 +72,38 @@
</el-pagination>
<!-- 新增/修改对话框 -->
<el-dialog :title="modalTitle" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="415px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" ref="modalForm" style="margin-left: 7px;">
<el-form-item label="货币编码" prop="currency" :rules="rules.currency">
<el-input v-model="modalData.currency" :disabled="modalDisableFlag" style="width: 100px"></el-input>
</el-form-item>
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label="基础货币" prop="baseCurrency">
<el-select v-model="modalData.baseCurrency" style="width: 100px">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;">
<el-form-item label="货币描述" prop="currencyDesc" :rules="rules.currencyDesc">
<el-input v-model="modalData.currencyDesc" style="width: 325px"></el-input>
</el-form-item>
<el-dialog :title="modalTitle" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="520px">
<el-form label-position="top" :model="modalData" :rules="rules" ref="modalForm" style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="货币编码" prop="currency" :rules="rules.currency">
<el-input v-model="modalData.currency" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="基础货币" prop="baseCurrency">
<el-select v-model="modalData.baseCurrency" style="width: 100%">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="货币描述" prop="currencyDesc" :rules="rules.currencyDesc">
<el-input v-model="modalData.currencyDesc" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>

62
src/views/modules/srmBaseInformation/srmSupplierGroup.vue

@ -68,36 +68,38 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="供应商分组" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="480px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;">
<el-form-item label="供应商分组代码" prop="supplierGroup" :rules="rules.supplierGroup">
<sys-dict-select
v-model="modalData.supplierGroup"
dict-type="supplier_group"
:disabled="modalDisableFlag"
placeholder="选择字典编码(存入 supplier_group)"
width="260px"
filterable
@option-change="onSupplierGroupDictChange"
/>
</el-form-item>
<el-form-item label="分组类型" prop="groupType">
<el-select v-model="modalData.groupType" style="width: 160px">
<el-option label="供应商分组1" value="供应商分组1"></el-option>
<el-option label="供应商分组2" value="供应商分组2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;">
<el-form-item label="供应商分组描述" prop="groupDesc" :rules="rules.groupDesc">
<el-input v-model="modalData.groupDesc" style="width: 325px"></el-input>
</el-form-item>
<el-dialog title="供应商分组" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="560px">
<el-form label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="供应商分组代码" prop="supplierGroup" :rules="rules.supplierGroup">
<el-input v-model="modalData.supplierGroup" clearable style="width: 120px"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分组类型" prop="groupType">
<el-select v-model="modalData.groupType" style="width: 100%">
<el-option label="供应商分组1" value="供应商分组1"></el-option>
<el-option label="供应商分组2" value="供应商分组2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="供应商分组描述" prop="groupDesc" :rules="rules.groupDesc">
<el-input v-model="modalData.groupDesc" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>

56
src/views/modules/srmBaseInformation/srmTax.vue

@ -66,29 +66,39 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="税率" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="415px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="税率编码" prop="taxCode">
<el-input v-model="modalData.taxCode" :disabled="modalDisableFlag" style="width: 100px"></el-input>
</el-form-item>
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label="税率(%)" prop="taxRate">
<el-input
v-model="modalData.taxRate"
style="width: 100px"
@input="validateTaxRateInput"
></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;" ref="modalForm">
<el-form-item label="税率描述" prop="taxDesc">
<el-input v-model="modalData.taxDesc" style="width: 325px"></el-input>
</el-form-item>
<el-dialog title="税率" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="520px">
<el-form label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px; margin-right: 7px;" ref="modalForm">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="税率编码" prop="taxCode">
<el-input v-model="modalData.taxCode" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="税率(%)" prop="taxRate">
<el-input
v-model="modalData.taxRate"
style="width: 100%"
@input="validateTaxRateInput"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="税率描述" prop="taxDesc">
<el-input v-model="modalData.taxDesc" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>

372
src/views/modules/srmBaseInformation/srmUm.vue

@ -0,0 +1,372 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData">
<el-form-item label="编码">
<el-input v-model="searchData.umId" clearable style="width: 140px"></el-input>
</el-form-item>
<el-form-item label="名称">
<el-input v-model="searchData.umName" clearable style="width: 180px"></el-input>
</el-form-item>
<el-form-item label="是否在用">
<el-select v-model="searchData.active" clearable style="width: 120px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button v-if="authSearch" type="primary" @click="getDataList()">查询</el-button>
<el-button v-if="authSave" type="primary" @click="addModal()">新增</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">
{{ scope.row[item.columnProp] }}
</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="120"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" v-if="authUpdate" @click="updateModal(scope.row)">编辑 |</el-link>
<el-link style="cursor: pointer" v-if="authDelete" @click="deleteUmHandle(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog :title="modalTitle" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="520px">
<el-form label-position="top" :model="modalData" :rules="rules" ref="modalForm" style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="编码" prop="umId">
<el-input v-model="modalData.umId" :disabled="modalDisableFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否在用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="名称" prop="umName">
<el-input v-model="modalData.umName" style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
getUmListPaging,
saveUm,
updateUm,
deleteUm
} from '@/api/baseInformation/srmUm.js'
export default {
name: 'srmUm',
watch: {
searchData: {
deep: true,
handler: function () {
this.searchData.umId = (this.searchData.umId || '').toUpperCase()
}
},
modalData: {
deep: true,
handler: function () {
this.modalData.umId = (this.modalData.umId || '').toUpperCase()
}
}
},
data () {
const functionId = this.$route.meta.menuId || 'srmUm'
return {
height: 200,
dataList: [],
dataListLoading: false,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
searchData: {
site: this.$store.state.user.site,
umId: '',
umName: '',
active: '',
page: 1,
limit: 10
},
modalFlag: false,
modalTitle: '',
modalDisableFlag: false,
modalData: {
site: this.$store.state.user.site,
umId: '',
umName: '',
active: 'Y',
flag: '1'
},
columnList: [
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmUmTableUmId',
tableId: 'srmUmTable',
tableName: '计量单位表',
columnProp: 'umId',
headerAlign: 'center',
align: 'center',
columnLabel: '编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmUmTableUmName',
tableId: 'srmUmTable',
tableName: '计量单位表',
columnProp: 'umName',
headerAlign: 'center',
align: 'left',
columnLabel: '名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
},
{
userId: this.$store.state.user.name,
functionId: functionId,
serialNumber: 'srmUmTableActive',
tableId: 'srmUmTable',
tableName: '计量单位表',
columnProp: 'active',
headerAlign: 'center',
align: 'center',
columnLabel: '是否在用',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
}
],
rules: {
umId: [
{ required: true, message: ' ', trigger: 'blur' }
],
umName: [
{ required: true, message: ' ', trigger: 'blur' }
],
active: [
{ required: true, message: ' ', trigger: 'change' }
]
},
authSearch: false,
authSave: false,
authUpdate: false,
authDelete: false,
menuId: functionId
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 180
})
},
created () {
this.getButtonAuthData()
this.getDataList()
},
methods: {
getDataList () {
this.dataListLoading = true
const params = {
...this.searchData,
site: this.$store.state.user.site,
page: this.pageIndex,
limit: this.pageSize
}
getUmListPaging(params).then(({ data }) => {
if (data && data.code === 0) {
const pageData = data.data || data.page
this.dataList = pageData && pageData.list ? pageData.list : pageData
if (pageData && pageData.currPage) {
this.pageIndex = pageData.currPage
this.pageSize = pageData.pageSize
this.totalPage = pageData.totalCount
} else {
this.totalPage = this.dataList ? this.dataList.length : 0
}
} else {
this.$message.error((data && data.msg) || '获取数据失败')
}
}).catch(error => {
console.error('获取计量单位失败:', error)
this.$message.error('获取数据失败: ' + (error.message || '网络错误'))
}).finally(() => {
this.dataListLoading = false
})
},
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
addModal () {
this.modalTitle = '新增计量单位'
this.modalDisableFlag = false
this.modalData = {
site: this.$store.state.user.site || '',
umId: '',
umName: '',
active: 'Y',
flag: '1'
}
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
this.modalFlag = true
},
updateModal (row) {
this.modalTitle = '编辑计量单位'
this.modalDisableFlag = true
this.modalData = {
site: row.site,
umId: row.umId,
umName: row.umName,
active: row.active,
flag: '2'
}
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
this.modalFlag = true
},
saveData () {
this.$refs.modalForm.validate((valid) => {
if (!valid) {
return false
}
const inData = { ...this.modalData }
const apiCall = inData.flag === '1' ? saveUm : updateUm
apiCall(inData).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('操作成功')
this.modalFlag = false
this.getDataList()
} else {
this.$message.error((data && data.msg) || '操作失败')
}
}).catch(error => {
console.error('保存计量单位失败:', error)
this.$message.error('保存失败: ' + (error.message || '网络错误'))
})
})
},
deleteUmHandle (row) {
this.$confirm(`确定删除此计量单位吗?编码:${row.umId}`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteUm({
site: row.site,
umId: row.umId
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('删除成功')
this.getDataList()
} else {
this.$message.error((data && data.msg) || '删除失败')
}
}).catch(error => {
console.error('删除计量单位失败:', error)
this.$message.error('删除失败: ' + (error.message || '网络错误'))
})
}).catch(() => {
this.$message.info('已取消删除')
})
},
// - rqrq
getButtonAuthData () {
let searchFlag = this.isAuth(this.menuId + ':search')
let saveFlag = this.isAuth(this.menuId + ':save')
let updateFlag = this.isAuth(this.menuId + ':update')
let deleteFlag = this.isAuth(this.menuId + ':delete')
this.authSearch = !searchFlag
this.authSave = !saveFlag
this.authUpdate = !updateFlag
this.authDelete = !deleteFlag
}
}
}
</script>
<style scoped>
.mod-config {
padding: 0;
}
</style>

8
src/views/modules/srmSupplier/com_supplierShare_share.vue

@ -65,10 +65,10 @@
<el-dialog title="份额" :visible.sync="modelFlag" width="600px" style="margin-top: 7px" v-drag :close-on-click-modal="false">
<el-form inline="inline" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-row>
<el-form-item label="物料编码">
<el-form-item label="物料品类编码">
<el-input v-model="modelSearchData.materialFamilyNo" disabled style="width: 130px"></el-input>
</el-form-item>
<el-form-item label="物料描述">
<el-form-item label="物料品类描述">
<el-input v-model="modelSearchData.materialFamilyDesc" disabled style="width: 275px"></el-input>
</el-form-item>
</el-row>
@ -147,10 +147,10 @@
<el-dialog title="删除" :visible.sync="delModelFlag" width="600px" style="margin-top: 7px" v-drag :close-on-click-modal="false">
<el-form inline="inline" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-row>
<el-form-item label="物料编码">
<el-form-item label="物料品类编码">
<el-input v-model="modelSearchData.materialFamilyNo" disabled style="width: 130px"></el-input>
</el-form-item>
<el-form-item label="物料描述">
<el-form-item label="物料品类描述">
<el-input v-model="modelSearchData.materialFamilyDesc" disabled style="width: 275px"></el-input>
</el-form-item>
</el-row>

16
src/views/modules/srmSupplier/supplierShare.vue

@ -4,16 +4,16 @@
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" >
<el-row>
<el-col :span="24" style="">
<el-form-item :label="'物料编码:'">
<el-form-item :label="'物料品类编码:'">
<el-input v-model="searchData.materialFamilyNo" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'物料描述:'">
<el-form-item :label="'物料品类描述:'">
<el-input v-model="searchData.materialFamilyDesc" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="' '" >
<el-button class="customer-bun-min" type="primary" @click="getMainData" style="">查询</el-button>
<el-button class="customer-bun-min" type="primary" @click="openModelData" style="">新建物料</el-button>
<el-button class="customer-bun-min" type="primary" @click="openModelData" style="">新建物料品类</el-button>
<el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button>
</el-form-item>
@ -58,16 +58,16 @@
</el-table-column>
</el-table>
<el-dialog title="物料" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="400px">
<el-dialog title="物料品类" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="400px">
<el-form label-position="top" style="margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="'物料编码'" >
<el-form-item :label="'物料品类编码'" >
<el-input v-model="addModelData.materialFamilyNo" :disabled="addModelData.flag===1" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'物料描述'" >
<el-form-item :label="'物料品类描述'" >
<el-input v-model="addModelData.materialFamilyDesc" ></el-input>
</el-form-item>
</el-col>
@ -138,7 +138,7 @@ export default {
columnProp: "materialFamilyNo",
headerAlign: "center",
align: "left",
columnLabel: "物料编码",
columnLabel: "物料品类编码",
columnWidth: '100',
columnHidden: false,
columnImage: false,
@ -156,7 +156,7 @@ export default {
columnProp: "materialFamilyDesc",
headerAlign: "center",
align: "left",
columnLabel: "物料描述",
columnLabel: "物料品类描述",
columnWidth: '200',
columnHidden: false,
columnImage: false,

Loading…
Cancel
Save