From 46003c8e286ae48d7e3aa100b5258dd6d5763101 Mon Sep 17 00:00:00 2001
From: houjie <714924425@qq.com>
Date: 星期六, 19 八月 2023 16:01:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop
---
src/views/eam/modules/unit/MomUnitForm.vue | 226 +++++++
src/views/eam/modules/unit/MomUnitConversionForm.vue | 255 ++++++++
src/views/eam/modules/unit/MomUnitListLeft.vue | 54 +
src/views/eam/modules/unitCategory/MomBaseUnitCategoryListLeft.vue | 59 +
src/views/eam/modules/unit/MomUnitListRight.vue | 336 ++++++++++
src/views/eam/UnitCategoryList.vue | 185 +++++
src/views/eam/modules/unit/MomUnitModal.vue | 63 ++
src/views/eam/modules/unit/MomUnitConversionModal.vue | 63 ++
src/views/eam/modules/unitCategory/MomBaseUnitCategoryForm.vue | 229 +++++++
src/views/eam/modules/unitCategory/MomBaseUnitCategoryModal.vue | 63 ++
src/views/eam/UnitList.vue | 189 ++++++
src/views/eam/modules/unitCategory/MomBaseUnitCategoryListRight.vue | 137 ++++
12 files changed, 1,859 insertions(+), 0 deletions(-)
diff --git a/src/views/eam/UnitCategoryList.vue b/src/views/eam/UnitCategoryList.vue
new file mode 100644
index 0000000..6632556
--- /dev/null
+++ b/src/views/eam/UnitCategoryList.vue
@@ -0,0 +1,185 @@
+<template>
+ <div>
+ <a-card
+ :bordered="true"
+ style="height: 50%"
+ >
+ <a-row type="flex">
+ <a-col><a-button
+ type="primary"
+ @click="handleAdd(da)"
+ >鏂板缓</a-button></a-col>
+ <a-col><a-button
+ type="primary"
+ @click="handleEdit(da)"
+ >缂栬緫</a-button></a-col>
+ <a-col><a-button
+ type="primary"
+ @click="batchDel(da)"
+ >鍒犻櫎</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">妯℃澘</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">瀵煎叆</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">瀵煎嚭</a-button></a-col>
+ </a-row>
+ </a-card>
+ <a-row
+ type="flex"
+ :gutter="16"
+ >
+ <a-col
+ :md="5"
+ :sm="24"
+ >
+ 聽 聽 聽
+ <MomBaseUnitCategoryListLeft
+ ref="MomBaseUnitCategoryListLeft"
+ class="MomBaseUnitCategoryListLeft"
+ @treeSelect="treeSelect"
+ />
+ 聽 聽
+ </a-col>
+ <a-col
+ :md="24 - 5"
+ :sm="24"
+ >
+ <MomBaseUnitCategoryListRight
+ ref="MomBaseUnitCategoryListRight"
+ class="MomBaseUnitCategoryListRight"
+ @searchkeys="selectedKeys"
+ />
+ </a-col>
+ </a-row>
+ <mom-base-unit-category-modal
+ ref="modalForm"
+ @ok="modalFormOk"
+ ></mom-base-unit-category-modal>
+ </div>
+</template>
+
+<script>
+import MomBaseUnitCategoryListLeft from './modules/unitCategory/MomBaseUnitCategoryListLeft'
+import MomBaseUnitCategoryListRight from './modules/unitCategory/MomBaseUnitCategoryListRight'
+import MomBaseUnitCategoryModal from './modules/unitCategory/MomBaseUnitCategoryModal'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import { deleteAction } from '@/api/manage'
+
+export default {
+ name: 'MomBaseUnitCategoryList',
+ mixins: [JeecgListMixin],
+ components: { MomBaseUnitCategoryListLeft, MomBaseUnitCategoryListRight, MomBaseUnitCategoryModal },
+ data() {
+ return {
+ description: '璁¢噺鍗曚綅鍒嗙被椤甸潰',
+ currentOrgCode: '',
+ selectedRowKeys: [],
+ selectionRows: [],
+ url: {
+ list: '/base/getTree',
+ deleteBatch: '/base/delete',
+ },
+ da: [],
+ }
+ },
+
+ methods: {
+ //鏂板鏁版嵁锛堟柊寤烘寜閽Е鍙戯級
+ handleAdd(da) {
+ if (this.da.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�涓爲鑺傜偣锛�')
+ return
+ } else {
+ this.$refs.modalForm.add(da, { cb: this.callback })
+ }
+ },
+ //淇敼鏁版嵁锛堜慨鏀规寜閽Е鍙戯級
+ handleEdit(da) {
+ if (this.da.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�涓爲鑺傜偣锛�')
+ return
+ } else {
+ this.$refs.modalForm.edit(da, { cb: this.loadTree })
+ }
+ },
+ //鎵归噺鍒犻櫎鍙充晶鏁版嵁锛堝垹闄ゆ寜閽Е鍙戯級
+ batchDel(da) {
+ if (!this.url.deleteBatch) {
+ this.$message.error('璇疯缃畊rl.deleteBatch灞炴��!')
+ return
+ }
+ if (this.selectedRowKeys.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+ return
+ } else {
+ var ids = ''
+ for (var a = 0; a < this.selectedRowKeys.length; a++) {
+ ids += this.selectedRowKeys[a] + ','
+ }
+ var that = this
+ this.$confirm({
+ title: '纭鍒犻櫎',
+ content: '鏄惁鍒犻櫎閫変腑鏁版嵁?',
+ onOk: function () {
+ that.loading = true
+ deleteAction(that.url.deleteBatch, { ids: ids })
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.loading = false
+ //閲嶆柊璁$畻鍒嗛〉闂
+ that.reCalculatePage(that.selectedRowKeys.length)
+ that.onClearSelected()
+ that.$refs.MomBaseUnitCategoryListRight.loadData({ id: da.id })
+ that.loadTree()
+ })
+ },
+ })
+ }
+ },
+ //閲嶆柊璁$畻鍒嗛〉
+ reCalculatePage(count) {
+ //鎬绘暟閲�-count
+ let total = this.ipagination.total - count
+ //鑾峰彇鍒犻櫎鍚庣殑鍒嗛〉鏁�
+ let currentIndex = Math.ceil(total / this.ipagination.pageSize)
+ //鍒犻櫎鍚庣殑鍒嗛〉鏁�<鎵�鍦ㄥ綋鍓嶉〉
+ if (currentIndex < this.ipagination.current) {
+ this.ipagination.current = currentIndex
+ }
+ console.log('currentIndex', currentIndex)
+ },
+ //娓呴櫎鍙充晶閫変腑椤�
+ onClearSelected() {
+ this.selectedRowKeys = []
+ this.selectionRows = []
+ },
+ //宸﹀彸鑱斿姩锛坉a涓哄乏渚ч�変腑鏍戠殑鏁版嵁锛屽瓙鎺т欢涓繑鍥烇級
+ treeSelect(da) {
+ let id = da.id
+ this.da = da
+ this.onClearSelected()
+ this.$refs.MomBaseUnitCategoryListRight.loadData({ id })
+ },
+ //鍙充晶鍒楄〃閫変腑浜嬩欢
+ selectedKeys(selectedRowKeys) {
+ this.selectedRowKeys = selectedRowKeys
+ },
+ //鍔犺浇宸︿晶鏍�
+ loadTree() {
+ this.$refs.MomBaseUnitCategoryListLeft.queryTreeData()
+ },
+ //鏂板缂栬緫淇濆瓨鍚庡洖璋冨嚱鏁板洖鏄鹃〉闈㈡暟鎹�
+ callback(id) {
+ this.$refs.MomBaseUnitCategoryListLeft.queryTreeData()
+ this.$refs.MomBaseUnitCategoryListRight.loadData({ id: id })
+ },
+ },
+}
+</script>
+<style scoped>
+@import '~@assets/less/common.less';
+</style>
\ No newline at end of file
diff --git a/src/views/eam/UnitList.vue b/src/views/eam/UnitList.vue
new file mode 100644
index 0000000..66f0a18
--- /dev/null
+++ b/src/views/eam/UnitList.vue
@@ -0,0 +1,189 @@
+<template>
+ <div>
+ <a-card
+ :bordered="true"
+ style="height: 50%"
+ >
+ <a-row type="flex">
+ <a-col><a-button
+ type="primary"
+ @click="handleAdd(da)"
+ >鏂板缓</a-button></a-col>
+ <a-col><a-button
+ type="primary"
+ @click="handleEdit(selectedRows)"
+ >缂栬緫</a-button></a-col>
+ <a-col><a-button
+ type="primary"
+ @click="batchDel(da)"
+ >鍒犻櫎</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">妯℃澘</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">瀵煎叆</a-button></a-col>
+ <a-col style="left: 5%"><a-button type="primary">瀵煎嚭</a-button></a-col>
+ </a-row>
+ </a-card>
+ <a-row
+ type="flex"
+ :gutter="16"
+ >
+ <a-col
+ :md="5"
+ :sm="24"
+ >
+ 聽 聽 聽
+ <MomUnitListLeft
+ ref="MomUnitListLeft"
+ class="MomUnitListLeft"
+ @treeSelect="treeSelect"
+ />
+ 聽 聽
+ </a-col>
+ <a-col
+ :md="24 - 5"
+ :sm="24"
+ >
+ <MomUnitListRight
+ ref="MomUnitListRight"
+ class="MomUnitListRight"
+ @searchkeys="selectedKeys"
+ />
+ </a-col>
+ </a-row>
+ <mom-unit-modal
+ ref="modalForm"
+ @ok="modalFormOk"
+ ></mom-unit-modal>
+ </div>
+</template>
+
+<script>
+import MomUnitListLeft from './modules/unit/MomUnitListLeft'
+import MomUnitListRight from './modules/unit/MomUnitListRight'
+import MomUnitModal from './modules/unit/MomUnitModal'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import { deleteAction } from '@/api/manage'
+
+export default {
+ name: 'MomUnitList',
+ mixins: [JeecgListMixin],
+ components: { MomUnitListLeft, MomUnitListRight, MomUnitModal },
+ data() {
+ return {
+ description: '璁¢噺鍗曚綅椤甸潰',
+ currentOrgCode: '',
+ selectedRowKeys: [],
+ selectedRows: [],
+ url: {
+ list: '/base/getTree',
+ deleteBatch: '/base/unit/deleteMomUnit',
+ },
+ da: [],
+ }
+ },
+
+ methods: {
+ //鏂板鏁版嵁锛堟柊寤烘寜閽Е鍙戯級
+ handleAdd(da) {
+ if (this.da.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�涓爲鑺傜偣锛�')
+ return
+ } else {
+ this.$refs.modalForm.add(da, { cb: this.callback })
+ }
+ },
+ //淇敼鏁版嵁锛堜慨鏀规寜閽Е鍙戯級
+ handleEdit(selectedRows) {
+ if (this.selectedRows.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¢渶瑕佷慨鏀圭殑璁¢噺鍗曚綅锛�')
+ return
+ } else if (this.selectedRows.length > 1) {
+ this.$message.warning('娉ㄦ剰锛氬彧鑳介�夋嫨涓�鏉¤閲忓崟浣嶈繘琛屼慨鏀癸紒')
+ return
+ } else {
+ this.$refs.modalForm.edit(selectedRows, { cb: this.callback })
+ }
+ },
+ //鎵归噺鍒犻櫎鍙充晶鏁版嵁锛堝垹闄ゆ寜閽Е鍙戯級
+ batchDel(da) {
+ if (!this.url.deleteBatch) {
+ this.$message.error('璇疯缃畊rl.deleteBatch灞炴��!')
+ return
+ }
+ if (this.selectedRowKeys.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+ return
+ } else {
+ var ids = ''
+ for (var a = 0; a < this.selectedRowKeys.length; a++) {
+ ids += this.selectedRowKeys[a] + ','
+ }
+ var that = this
+ this.$confirm({
+ title: '纭鍒犻櫎',
+ content: '鏄惁鍒犻櫎閫変腑鏁版嵁?',
+ onOk: function () {
+ that.loading = true
+ deleteAction(that.url.deleteBatch, { ids: ids })
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.loading = false
+ //閲嶆柊璁$畻鍒嗛〉闂
+ that.reCalculatePage(that.selectedRowKeys.length)
+ that.onClearSelected()
+ that.$refs.MomUnitListRight.loadData({ id: da.id })
+ that.loadTree()
+ })
+ },
+ })
+ }
+ },
+ //閲嶆柊璁$畻鍒嗛〉
+ reCalculatePage(count) {
+ //鎬绘暟閲�-count
+ let total = this.ipagination.total - count
+ //鑾峰彇鍒犻櫎鍚庣殑鍒嗛〉鏁�
+ let currentIndex = Math.ceil(total / this.ipagination.pageSize)
+ //鍒犻櫎鍚庣殑鍒嗛〉鏁�<鎵�鍦ㄥ綋鍓嶉〉
+ if (currentIndex < this.ipagination.current) {
+ this.ipagination.current = currentIndex
+ }
+ console.log('currentIndex', currentIndex)
+ },
+ //娓呴櫎鍙充晶閫変腑椤�
+ onClearSelected() {
+ this.selectedRowKeys = []
+ this.selectedRows = []
+ },
+ //宸﹀彸鑱斿姩锛坉a涓哄乏渚ч�変腑鏍戠殑鏁版嵁锛屽瓙鎺т欢涓繑鍥烇級
+ treeSelect(da) {
+ let id = da.id
+ this.da = da
+ this.onClearSelected()
+ this.$refs.MomUnitListRight.loadData({ unitCategoryId: id })
+ },
+ //鍙充晶鍒楄〃閫変腑浜嬩欢
+ selectedKeys(selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ },
+ //鍔犺浇宸︿晶鏍�
+ loadTree() {
+ this.$refs.MomUnitListLeft.queryTreeData()
+ },
+ //鏂板缂栬緫淇濆瓨鍚庡洖璋冨嚱鏁板洖鏄鹃〉闈㈡暟鎹�
+ callback(id) {
+ this.$refs.MomUnitListRight.loadData({ id: id })
+ this.$refs.MomUnitListRight.getList()
+ },
+ },
+}
+</script>
+<style scoped>
+@import '~@assets/less/common.less';
+</style>
\ No newline at end of file
diff --git a/src/views/eam/modules/unit/MomUnitConversionForm.vue b/src/views/eam/modules/unit/MomUnitConversionForm.vue
new file mode 100644
index 0000000..f133c4d
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitConversionForm.vue
@@ -0,0 +1,255 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" slot="detail" :rules="validatorRules">
+ <a-row type="flex" :gutter="16">
+ <a-col :span="24">
+ <a-form-model-item label="鐩爣璁¢噺鍗曚綅浠g爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="targetUnitId">
+ <a-tree-select
+ style="width:100%"
+ :dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }"
+ :treeData="treeData"
+ v-model="model.targetUnitId"
+ placeholder="璇烽�夋嫨鐖剁骇鑿滃崟"
+ :replace-fields="replaceFields"
+ :disabled="false"
+ @change="handleParentIdChange">
+ </a-tree-select>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="鎹㈢畻姣斾緥" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="conversionRatio">
+ <a-input style="width: 48%" :min="1" defaultValue="1" :disabled="true" ></a-input>
+ <span>锛�</span>
+ <a-input style="width: 49%" :min="1" v-model="model.conversionRatio" placeholder="璇疯緭鍏ユ崲绠楁瘮渚�"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+ <a-input style="width: 100%" :min="1" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"></a-input>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ <a-row type="flex" :gutter="16" justify="center">
+ <a-col>
+ <a-button type="primary" @click="submitForm">淇濆瓨</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="submitFormAndAdd">淇濆瓨骞舵柊澧�</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="close">鍙栨秷</a-button>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+import { httpAction, getAction } from '@/api/manage'
+import { validateDuplicateValue } from '@/utils/util'
+import JFormContainer from '@/components/jeecg/JFormContainer'
+import JDate from '@/components/jeecg/JDate'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+
+export default {
+ name: 'MomUnitConversionForm',
+ components: {
+ JFormContainer,
+ JDate,
+ JDictSelectTag,
+ },
+ props: {
+ formData: {
+ type: Object,
+ default: () => {},
+ required: false,
+ },
+ normal: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ },
+ data() {
+ return {
+ model: { status: 1 },
+ id: '',
+ treeData: null,
+ replaceFields: {
+ children:"children",
+ title: 'codeName',
+ key:"code",
+ value:"id"
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ url: {
+ addMomUnit: '/base/unit/addMomUnit',
+ deleteMomUnit: '/base/unit/deleteMomUnit',
+ addMomUnitOnversion: '/base/unit/onversion/addMomUnitOnversion',
+ deleteMomUnitOnversion:'/base/unit/onversion/deleteMomUnitOnversion',
+ treeList:'/base/getUnitTree'
+ },
+ validatorRules: {
+ targetUnitId: [{ required: true, message: '璇烽�夋嫨鐩爣璁¢噺鍗曚綅浠g爜!' }, { trigger: 'blur' }],
+ conversionRatio: [{ required: true, message: '璇疯緭鍏ユ崲绠楁瘮渚�!' }, { trigger: 'blur' }],
+ },
+ cb: null,
+ }
+ },
+ computed: {
+ formDisabled() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return false
+ } else {
+ return true
+ }
+ }
+ return this.disabled
+ },
+ disabledId() {
+ return this.id ? true : false
+ },
+ showFlowSubmitButton() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return true
+ } else {
+ return false
+ }
+ } else {
+ return false
+ }
+ },
+ },
+ created() {
+ this.showFlowData()
+ this.loadTree()
+ },
+ methods: {
+ showAdd(record, { cb }) {
+ this.cb = cb
+ this.model = record ? Object.assign({}, record) : this.model
+ this.id = record ? record.id : ''
+ this.model.id=''
+ this.model.name=''
+ this.model.remark=''
+ this.model.unitId=record[0].id
+ this.visible = true
+ },
+ show(record, { cb }) {
+ this.cb = cb
+ this.model = record[0] ? Object.assign({}, record[0]) : this.model
+ this.id = record[0] ? record[0].id : ''
+ this.visible = true
+ this.loadTree();
+ },
+ showFlowData() {
+ if (this.normal === false) {
+ let params = { id: this.formData.dataId }
+ getAction(this.url.queryById, params).then((res) => {
+ if (res.success) {
+ this.edit(res.result)
+ }
+ })
+ }
+ },
+ //淇濆瓨鎸夐挳瑙﹀彂
+ submitForm() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.addMomUnitOnversion
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok')
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = false
+ this.cb(this.id)
+ this.cb = null
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ //淇濆瓨骞舵柊澧炴寜閽Е鍙�
+ submitFormAndAdd() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.addMomUnit
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ this.confirmLoading = false
+ this.model.id = ''
+ this.model.num = ''
+ this.model.name = ''
+ this.cb(this.id)
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ loadTree(){
+ var that = this;
+ getAction(that.url.treeList).then((res) => {
+ if (res.success) {
+ that.treeData = res.result
+ }
+ })
+ },
+ handleParentIdChange(value){
+ if(!value){
+ this.validateStatus="error"
+ }else{
+ this.validateStatus="success"
+ }
+ },
+ //鍙栨秷鎸夐挳瑙﹀彂
+ close() {
+ this.$emit('ok')
+ this.visible = false
+ },
+ },
+}
+</script>
diff --git a/src/views/eam/modules/unit/MomUnitConversionModal.vue b/src/views/eam/modules/unit/MomUnitConversionModal.vue
new file mode 100644
index 0000000..0c6b27d
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitConversionModal.vue
@@ -0,0 +1,63 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ :footer="null"
+ >
+ <mom-unit-conversion-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></mom-unit-conversion-form>
+ </j-modal>
+</template>
+
+<script>
+ import MomUnitConversionForm from './MomUnitConversionForm'
+ export default {
+ name: "MomUnitConversionModal",
+ components: {
+ MomUnitConversionForm
+ },
+ data () {
+ return {
+ title:'',
+ width:800,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add (record,{cb}) {
+ this.title="鏂板缓"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.showAdd(record,{cb});
+ })
+ },
+ edit (record,{cb}) {
+ this.title="缂栬緫"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.show(record,{cb});
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ },
+
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/eam/modules/unit/MomUnitForm.vue b/src/views/eam/modules/unit/MomUnitForm.vue
new file mode 100644
index 0000000..aeee10e
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitForm.vue
@@ -0,0 +1,226 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" slot="detail" :rules="validatorRules">
+ <a-row type="flex" :gutter="16">
+ <a-col :span="24">
+ <a-form-model-item label="璁¢噺鍗曚綅缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num">
+ <a-input v-model="model.num" placeholder="璇疯緭鍏ヨ閲忓崟浣嶇紪鐮�"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="璁¢噺鍗曚綅鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
+ <a-input style="width: 100%" :min="1" v-model="model.name" placeholder="璇疯緭鍏ヨ閲忓崟浣嶅悕绉�"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="鍒嗙被鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="categoryName">
+ <a-input style="width: 100%" :min="1" v-model="model.categoryName" :disabled="true"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+ <a-input style="width: 100%" :min="1" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"></a-input>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ <a-row type="flex" :gutter="16" justify="center">
+ <a-col>
+ <a-button type="primary" @click="submitForm">淇濆瓨</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="submitFormAndAdd">淇濆瓨骞舵柊澧�</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="close">鍙栨秷</a-button>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+import { httpAction, getAction } from '@/api/manage'
+import { validateDuplicateValue } from '@/utils/util'
+import JFormContainer from '@/components/jeecg/JFormContainer'
+import JDate from '@/components/jeecg/JDate'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+
+export default {
+ name: 'MomUnitForm',
+ components: {
+ JFormContainer,
+ JDate,
+ JDictSelectTag,
+ },
+ props: {
+ formData: {
+ type: Object,
+ default: () => {},
+ required: false,
+ },
+ normal: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ },
+ data() {
+ return {
+ model: { status: 1 },
+ id: '',
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ url: {
+ addMomUnit: '/base/unit/addMomUnit',
+ deleteMomUnit: '/base/unit/deleteMomUnit',
+ addMomUnitOnversion: '/base/unit/onversion/addMomUnitOnversion',
+ deleteMomUnitOnversion:'/base/unit/onversion/deleteMomUnitOnversion'
+ },
+ validatorRules: {
+ num: [{ required: true, message: '璇疯緭鍏ヨ閲忓崟浣嶇紪鐮�!' }, { trigger: 'blur' }],
+ name: [{ required: true, message: '璇疯緭鍏ヨ閲忓崟浣嶅悕绉�!' }, { trigger: 'blur' }],
+ },
+ cb: null,
+ }
+ },
+ computed: {
+ formDisabled() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return false
+ } else {
+ return true
+ }
+ }
+ return this.disabled
+ },
+ disabledId() {
+ return this.id ? true : false
+ },
+ showFlowSubmitButton() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return true
+ } else {
+ return false
+ }
+ } else {
+ return false
+ }
+ },
+ },
+ created() {
+ this.showFlowData()
+ },
+ methods: {
+ showAdd(record, { cb }) {
+ this.cb = cb
+ this.model = record ? Object.assign({}, record) : this.model
+ this.id = record ? record.id : ''
+ this.model.id=''
+ this.model.name=''
+ this.model.remark=''
+ this.model.unitCategoryId=record.id
+ this.model.categoryName = record.codeName
+ this.visible = true
+ },
+ show(record, { cb }) {
+ this.cb = cb
+ this.model = record[0] ? Object.assign({}, record[0]) : this.model
+ this.id = record[0] ? record[0].id : ''
+ this.visible = true
+ },
+ showFlowData() {
+ if (this.normal === false) {
+ let params = { id: this.formData.dataId }
+ getAction(this.url.queryById, params).then((res) => {
+ if (res.success) {
+ this.edit(res.result)
+ }
+ })
+ }
+ },
+ //淇濆瓨鎸夐挳瑙﹀彂
+ submitForm() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.addMomUnit
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok')
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = false
+ this.cb(this.id)
+ this.cb = null
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ //淇濆瓨骞舵柊澧炴寜閽Е鍙�
+ submitFormAndAdd() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.addMomUnit
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ this.confirmLoading = false
+ this.model.id = ''
+ this.model.num = ''
+ this.model.name = ''
+ this.cb(this.id)
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ //鍙栨秷鎸夐挳瑙﹀彂
+ close() {
+ this.$emit('ok')
+ this.visible = false
+ },
+ },
+}
+</script>
diff --git a/src/views/eam/modules/unit/MomUnitListLeft.vue b/src/views/eam/modules/unit/MomUnitListLeft.vue
new file mode 100644
index 0000000..c439fe4
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitListLeft.vue
@@ -0,0 +1,54 @@
+<template>
+ <a-card :bordered="false" style="height: 100%;">
+ <a-tree
+ showLine
+ checkStrictly
+ :replace-fields="replaceFields"
+ :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
+ :treeData="treeDataSource"
+ @select="handleTreeSelect"
+ >
+ <a-icon slot="switcherIcon" type="folder" /></a-tree>
+ </a-card>
+</template>
+
+<script>
+import { getAction } from '@/api/manage'
+
+ export default {
+ name: 'MomUnitListLeft',
+ data() {
+ return {
+ treeDataSource:[],
+ replaceFields: {
+ title: 'codeName',
+ },
+ url:{
+ getTree:'/base/getTree'
+ }
+ }
+ },
+ created() {
+ this.queryTreeData()
+ },
+ methods: {
+
+ queryTreeData() {
+ getAction(this.url.getTree).then((res)=>{
+ this.treeDataSource = res.result;
+ })
+ },
+ //宸︿晶鏍戠偣鍑昏Е鍙�
+ handleTreeSelect(selectedKeys, event) {
+ let da = event.node.dataRef;
+ this.$emit("treeSelect", da);
+ }
+
+
+ }
+ }
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/eam/modules/unit/MomUnitListRight.vue b/src/views/eam/modules/unit/MomUnitListRight.vue
new file mode 100644
index 0000000..6e2e6ea
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitListRight.vue
@@ -0,0 +1,336 @@
+<template>
+ <a-card class="j-address-list-right-card-box" :bordered="false">
+ <a-table
+ ref="table"
+ size="middle"
+ :row-selection="rowSelection"
+ bordered
+ rowKey="id"
+ :columns="columns"
+ :dataSource="dataSource"
+ >
+ </a-table>
+ <a-tabs type="card">
+ <a-tab-pane key="1" tab="鍗曚綅鎹㈢畻">
+ <a-row type="flex" :gutter="5" justify="end">
+ <a-col><a-button type="text" style="float:right" @click="batchDel(selectedDownRows)"><a-icon type="minus" style="color:rgba(28, 106, 235, 1)"></a-icon></a-button></a-col>
+ <a-col><a-button type="text" style="float:right" @click="handleAdd(selectedRows)"><a-icon type="plus" style="color:rgba(28, 106, 235, 1)"></a-icon></a-button></a-col>
+ <a-col><a-button type="text" style="float:right" @click="handleEdit(selectedDownRows)"><a-icon type="form" style="color:rgba(28, 106, 235, 1)"></a-icon></a-button></a-col>
+ </a-row>
+ </a-tab-pane>
+ </a-tabs>
+ <a-table
+ ref="table"
+ size="middle"
+ :row-selection="rowDownSelection"
+ bordered
+ rowKey="id"
+ :columns="downColumns"
+ :dataSource="downDataSource"
+ >
+ </a-table>
+ <mom-unit-conversion-modal ref="modalForm" ></mom-unit-conversion-modal>
+ </a-card>
+</template>
+
+<script>
+import { getAction } from '@/api/manage'
+import MomUnitConversionModal from './MomUnitConversionModal'
+import { deleteAction } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+export default {
+ name: 'MomUnitListRight',
+ mixins: [JeecgListMixin],
+ components: { MomUnitConversionModal },
+ props: ['value'],
+ data() {
+ return {
+ description: '璁¢噺鍗曚綅淇℃伅',
+ positionInfo: {},
+ dataSource: null,
+ unitCategoryId:"",
+ downDataSource: null,
+ selectedRowKeys:[],
+ selectedRows:[],
+ ids:"",
+ selectedDownRowKeys:[],
+ selectedDownRows:[],
+ url: {
+ deleteBatch: '/base/unit/onversion/deleteMomUnitOnversion',
+ getListByUnitCategoryId:'/base/unit/getListByUnitCategoryId'
+ },
+ columns: [
+ {
+ title: '鍗曚綅浠g爜',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'num',
+ },
+ {
+ title: '鍗曚綅鍚嶇О',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'name',
+ },
+ {
+ title: '鍒嗙被鍚嶇О',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'categoryName',
+ },
+ {
+ title: '鍒涘缓浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'createBy',
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'createTime',
+ },
+ {
+ title: '鏇存柊浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'updateBy',
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'updateTime',
+ },
+ {
+ title: '澶囨敞',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'remark',
+ },
+ ],
+ downColumns: [
+ {
+ title: '#',
+ key: 'rowIndex',
+ dataIndex: '',
+ width: 40,
+ align: 'center',
+ customRender: (t, r, i) => parseInt(i) + 1
+ },
+ {
+ title: '鐩爣鍗曚綅浠g爜',
+ width: '12%',
+ align: 'center',
+ dataIndex: 'targetUnitNum',
+ },
+ {
+ title: '鐩爣鍗曚綅鍚嶇О',
+ width: '12%',
+ align: 'center',
+ dataIndex: 'targetUnitName',
+ },
+ {
+ title: '鎹㈢畻姣斾緥',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'conversionRatio',
+ },
+ {
+ title: '鍒涘缓浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'createBy',
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'createTime',
+ },
+ {
+ title: '鏇存柊浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'updateBy',
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'updateTime',
+ },
+ {
+ title: '澶囨敞',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'remark',
+ },
+ ],
+ }
+ },
+ computed: {
+ rowSelection() {
+ return {
+ onChange: (selectedRowKeys, selectedRows) => {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ this.$emit('searchkeys', selectedRowKeys,selectedRows)
+ this.ids=selectedRowKeys.join(",")
+ this.getList()
+ },
+ getCheckboxProps: (record) => ({
+ props: {
+ disabled: record.name === 'Disabled User', // Column configuration not to be checked
+ name: record.name,
+ },
+ }),
+ }
+ },
+ rowDownSelection() {
+ return {
+ onChange: (selectedDownRowKeys, selectedDownRows) => {
+ this.selectedDownRowKeys = selectedDownRowKeys
+ this.selectedDownRows = selectedDownRows
+ },
+ getCheckboxProps: (record) => ({
+ props: {
+ disabled: record.name === 'Disabled User', // Column configuration not to be checked
+ name: record.name,
+ },
+ }),
+ }
+ },
+ },
+ created() {
+ this.loadData({ unitCategoryId: ''})
+ },
+ methods: {
+ loadData({ unitCategoryId }) {
+ let momUnit = {
+ unitCategoryId,
+ }
+
+ getAction(this.url.getListByUnitCategoryId, momUnit)
+ .then((res) => {
+ if (res.success) {
+ this.dataSource = res.result
+
+ }
+ })
+ .finally(() => {
+ this.loading = false
+ this.cardLoading = false
+ })
+
+ },
+ //鏍规嵁閫変腑鐨勮閲忓崟浣峣d璋冪敤鏌ヨ鍗曚綅鎹㈢畻鍒楄〃鎺ュ彛
+ getList(){
+ getAction('/base/unit/onversion/getListByUnitId', {ids:this.ids})
+ .then((res) => {
+ if (res.success) {
+ this.downDataSource = res.result
+ }
+ })
+ .finally(() => {
+ this.loading = false
+ this.cardLoading = false
+ })
+ },
+ //澧炲姞鍗曚綅鎹㈢畻鏂规硶
+ handleAdd(selectedRows){
+ if (this.selectedRows.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¢渶瑕佸鍔犲崟浣嶆崲绠楃殑璁¢噺鍗曚綅锛�')
+ return
+ } else if (this.selectedRows.length > 1) {
+ this.$message.warning('娉ㄦ剰锛氬彧鑳介�夋嫨涓�鏉¢渶瑕佸鍔犲崟浣嶆崲绠楃殑璁¢噺鍗曚綅锛�')
+ return
+ } else {
+ this.$refs.modalForm.add(selectedRows,{cb: this.getList})
+ }
+ },
+ //淇敼鏁版嵁锛堜慨鏀规寜閽Е鍙戯級
+ handleEdit(selectedDownRows) {
+ if (this.selectedDownRows.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¢渶瑕佷慨鏀圭殑鍗曚綅鎹㈢畻淇℃伅锛�')
+ return
+ } else if (this.selectedDownRows.length > 1) {
+ this.$message.warning('娉ㄦ剰锛氬彧鑳介�夋嫨涓�鏉″崟浣嶅垝绠椾俊鎭繘琛屼慨鏀癸紒')
+ return
+ } else {
+ this.$refs.modalForm.edit(selectedDownRows, { cb: this.getList })
+ }
+ },
+ //鎵归噺鍒犻櫎鍙充晶鏁版嵁锛堝垹闄ゆ寜閽Е鍙戯級
+ batchDel() {
+ if (!this.url.deleteBatch) {
+ this.$message.error('璇疯缃畊rl.deleteBatch灞炴��!')
+ return
+ }
+ if (this.selectedDownRowKeys.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+ return
+ } else {
+ var ids = ''
+ for (var a = 0; a < this.selectedDownRowKeys.length; a++) {
+ ids += this.selectedDownRowKeys[a] + ','
+ }
+ var that = this
+ this.$confirm({
+ title: '纭鍒犻櫎',
+ content: '鏄惁鍒犻櫎閫変腑鏁版嵁?',
+ onOk: function () {
+ that.loading = true
+ deleteAction(that.url.deleteBatch, { ids: ids })
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.loading = false
+ //閲嶆柊璁$畻鍒嗛〉闂
+ that.reCalculatePage(that.selectedDownRowKeys.length)
+ that.onClearSelected()
+ this.getList()
+ that.loadTree()
+ })
+ },
+ })
+ }
+ },
+ //閲嶆柊璁$畻鍒嗛〉
+ reCalculatePage(count) {
+ //鎬绘暟閲�-count
+ let total = this.ipagination.total - count
+ //鑾峰彇鍒犻櫎鍚庣殑鍒嗛〉鏁�
+ let currentIndex = Math.ceil(total / this.ipagination.pageSize)
+ //鍒犻櫎鍚庣殑鍒嗛〉鏁�<鎵�鍦ㄥ綋鍓嶉〉
+ if (currentIndex < this.ipagination.current) {
+ this.ipagination.current = currentIndex
+ }
+ console.log('currentIndex', currentIndex)
+ },
+ //娓呴櫎鍗曚綅鎹㈢畻閫変腑椤�
+ onClearSelected() {
+ this.selectedDownRowKeys = []
+ this.selectedDownRows = []
+ },
+
+ },
+}
+</script>
+<style>
+.j-address-list-right-card-box .ant-table-placeholder {
+ min-height: 46px;
+}
+</style>
+<style scoped>
+.j-address-list-right-card-box {
+ height: 100%;
+ min-height: 300px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/eam/modules/unit/MomUnitModal.vue b/src/views/eam/modules/unit/MomUnitModal.vue
new file mode 100644
index 0000000..c9f906e
--- /dev/null
+++ b/src/views/eam/modules/unit/MomUnitModal.vue
@@ -0,0 +1,63 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ :footer="null"
+ >
+ <mom-unit-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></mom-unit-form>
+ </j-modal>
+</template>
+
+<script>
+ import MomUnitForm from './MomUnitForm'
+ export default {
+ name: "MomUnitModal",
+ components: {
+ MomUnitForm
+ },
+ data () {
+ return {
+ title:'',
+ width:800,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add (record,{cb}) {
+ this.title="鏂板缓"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.showAdd(record,{cb});
+ })
+ },
+ edit (record,{cb}) {
+ this.title="缂栬緫"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.show(record,{cb});
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ },
+
+ }
+ }
+</script>
\ No newline at end of file
diff --git a/src/views/eam/modules/unitCategory/MomBaseUnitCategoryForm.vue b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryForm.vue
new file mode 100644
index 0000000..8e6b0de
--- /dev/null
+++ b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryForm.vue
@@ -0,0 +1,229 @@
+<template>
+ <a-spin :spinning="confirmLoading">
+ <j-form-container :disabled="formDisabled">
+ <a-form-model ref="form" :model="model" slot="detail" :rules="validatorRules">
+ <a-row type="flex" :gutter="16">
+ <a-col :span="24">
+ <a-form-model-item label="璁¢噺鍗曚綅鍒嗙被缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code">
+ <a-input v-model="model.code" placeholder="璇疯緭鍏ヨ閲忓崟浣嶅垎绫荤紪鐮�"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="璁¢噺鍗曚綅鍒嗙被鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
+ <a-input style="width: 100%" :min="1" v-model="model.name" placeholder="璇疯緭鍏ヨ閲忓崟浣嶅垎绫诲悕绉�"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="涓婄骇鍒嗙被" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pName">
+ <a-input style="width: 100%" :min="1" v-model="model.pname" :disabled="true"></a-input>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="24">
+ <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+ <a-input style="width: 100%" :min="1" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"></a-input>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+ <a-row type="flex" :gutter="16" justify="center">
+ <a-col>
+ <a-button type="primary" @click="submitForm">淇濆瓨</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="submitFormAndAdd">淇濆瓨骞舵柊澧�</a-button>
+ </a-col>
+
+ <a-col>
+ <a-button type="primary" @click="close">鍙栨秷</a-button>
+ </a-col>
+ </a-row>
+ </a-form-model>
+ </j-form-container>
+ </a-spin>
+</template>
+
+<script>
+import { httpAction, getAction } from '@/api/manage'
+import { validateDuplicateValue } from '@/utils/util'
+import JFormContainer from '@/components/jeecg/JFormContainer'
+import JDate from '@/components/jeecg/JDate'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+
+export default {
+ name: 'MomBaseUnitCategoryForm',
+ components: {
+ JFormContainer,
+ JDate,
+ JDictSelectTag,
+ },
+ props: {
+ formData: {
+ type: Object,
+ default: () => {},
+ required: false,
+ },
+ normal: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false,
+ },
+ },
+ data() {
+ return {
+ model: { status: 1 },
+ id: '',
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ confirmLoading: false,
+ url: {
+ add: '/base/add',
+ delete: '/base/delete',
+ },
+ validatorRules: {
+ code: [{ required: true, message: '璇疯緭鍏ヨ閲忓崟浣嶅垎绫荤紪鐮�!' }, { trigger: 'blur' }],
+ name: [{ required: true, message: '璇疯緭鍏ヨ閲忓崟浣嶅垎绫诲悕绉�!' }, { trigger: 'blur' }],
+ },
+ cb: null,
+ }
+ },
+ computed: {
+ formDisabled() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return false
+ } else {
+ return true
+ }
+ }
+ return this.disabled
+ },
+ disabledId() {
+ return this.id ? true : false
+ },
+ showFlowSubmitButton() {
+ if (this.normal === false) {
+ if (this.formData.disabled === false) {
+ return true
+ } else {
+ return false
+ }
+ } else {
+ return false
+ }
+ },
+ },
+ created() {
+ this.showFlowData()
+ },
+ methods: {
+ showAdd(record, { cb }) {
+ this.cb = cb
+ this.model = record ? Object.assign({}, record) : this.model
+ this.id = record ? record.id : ''
+ this.model.id = ''
+ this.model.code = ''
+ this.model.name = ''
+ this.model.remark = ''
+ this.model.createBy = ''
+ this.model.createTime = ''
+ this.model.updateBy = ''
+ this.model.updateTime = ''
+ this.model.pid = record.id
+ this.model.pname = record.codeName
+ this.visible = true
+ },
+ show(record, { cb }) {
+ this.cb = cb
+ this.model = record ? Object.assign({}, record) : this.model
+ this.id = record ? record.id : ''
+ this.visible = true
+ },
+ showFlowData() {
+ if (this.normal === false) {
+ let params = { id: this.formData.dataId }
+ getAction(this.url.queryById, params).then((res) => {
+ if (res.success) {
+ this.edit(res.result)
+ }
+ })
+ }
+ },
+ //淇濆瓨鎸夐挳瑙﹀彂
+ submitForm() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.add
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok')
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = false
+ this.cb(this.id)
+ this.cb = null
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ //淇濆瓨骞舵柊澧炴寜閽Е鍙�
+ submitFormAndAdd() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ that.$refs.form.validate((valid) => {
+ if (valid) {
+ that.confirmLoading = true
+ let httpurl = this.url.add
+ let method = 'post'
+ httpAction(httpurl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ this.confirmLoading = false
+ this.model.id = ''
+ this.model.code = ''
+ this.model.name = ''
+ this.cb(this.id)
+ })
+ } else {
+ return false
+ }
+ })
+ },
+ //鍙栨秷鎸夐挳瑙﹀彂
+ close() {
+ this.$emit('ok')
+ this.visible = false
+ },
+ },
+}
+</script>
diff --git a/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListLeft.vue b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListLeft.vue
new file mode 100644
index 0000000..6f6d800
--- /dev/null
+++ b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListLeft.vue
@@ -0,0 +1,59 @@
+<template>
+ <a-card
+ :bordered="false"
+ style="height: 100%;"
+ >
+ <a-tree
+ showLine
+ checkStrictly
+ :replace-fields="replaceFields"
+ :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
+ :treeData="treeDataSource"
+ @select="handleTreeSelect"
+ >
+ <a-icon
+ slot="switcherIcon"
+ type="folder"
+ /></a-tree>
+ </a-card>
+</template>
+
+<script>
+import { getAction } from '@/api/manage'
+
+export default {
+ name: 'MomBaseUnitCategoryListLeft',
+ data() {
+ return {
+ treeDataSource: [],
+ replaceFields: {
+ title: 'codeName',
+ },
+ url: {
+ getTree: '/base/getTree'
+ }
+ }
+ },
+ created() {
+ this.queryTreeData()
+ },
+ methods: {
+
+ queryTreeData() {
+ getAction(this.url.getTree).then((res) => {
+ this.treeDataSource = res.result;
+ })
+ },
+ //宸︿晶鏍戠偣鍑昏Е鍙�
+ handleTreeSelect(selectedKeys, event) {
+ let da = event.node.dataRef;
+ this.$emit("treeSelect", da);
+ }
+
+
+ }
+}
+</script>
+
+<style scoped>
+</style>
\ No newline at end of file
diff --git a/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListRight.vue b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListRight.vue
new file mode 100644
index 0000000..bf7c075
--- /dev/null
+++ b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryListRight.vue
@@ -0,0 +1,137 @@
+<template>
+ <a-card class="j-address-list-right-card-box" :bordered="false">
+ <a-table
+ ref="table"
+ size="middle"
+ :row-selection="rowSelection"
+ bordered
+ rowKey="id"
+ :columns="columns"
+ :dataSource="dataSource"
+ >
+ </a-table>
+ </a-card>
+</template>
+
+<script>
+import { getAction } from '@/api/manage'
+
+export default {
+ name: 'MomBaseUnitCategoryListRight',
+ components: {},
+ props: ['value'],
+ data() {
+ return {
+ description: '璁¢噺鍗曚綅鍒嗙被淇℃伅',
+ positionInfo: {},
+ dataSource: null,
+ url:{
+ getList:'/base/getList'
+ },
+ columns: [
+ {
+ title: '鍒嗙被缂栫爜',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'code',
+ },
+ {
+ title: '鍒嗙被鍚嶇О',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'name',
+ key: 'name',
+ },
+ {
+ title: '涓婄骇鍒嗙被',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'codeName',
+ },
+ {
+ title: '鍒涘缓浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'createBy',
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'createTime',
+ },
+ {
+ title: '鏇存柊浜�',
+ width: '10%',
+ align: 'center',
+ dataIndex: 'updateBy',
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'updateTime',
+ },
+ {
+ title: '澶囨敞',
+ width: '15%',
+ align: 'center',
+ dataIndex: 'remark',
+ },
+ ],
+ }
+ },
+ computed: {
+ rowSelection() {
+ return {
+ onChange: (selectedRowKeys, selectedRows) => {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ this.$emit('searchkeys', selectedRowKeys,selectedRows)
+ this.ids=selectedRowKeys.join(",")
+ //this.getList()
+ },
+ getCheckboxProps: (record) => ({
+ props: {
+ disabled: record.name === 'Disabled User', // Column configuration not to be checked
+ name: record.name,
+ },
+ }),
+ }
+ },
+ },
+ created() {
+ this.loadData({ id: '' })
+ },
+ methods: {
+ loadData({ id }) {
+ let momBaseUnitCategory = {
+ id,
+ }
+ getAction(this.url.getList, momBaseUnitCategory)
+ .then((res) => {
+ if (res.success) {
+ this.dataSource = res.result
+ }
+ })
+ .finally(() => {
+ this.loading = false
+ this.cardLoading = false
+ })
+ // update-end- --- author:wangshuai ------ date:20200102 ---- for:浼犺繃鏉ョ殑閮ㄩ棬缂栫爜涓虹┖鍏ㄦ煡
+ },
+
+ },
+}
+</script>
+<style>
+.j-address-list-right-card-box .ant-table-placeholder {
+ min-height: 46px;
+}
+</style>
+<style scoped>
+.j-address-list-right-card-box {
+ height: 100%;
+ min-height: 300px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/eam/modules/unitCategory/MomBaseUnitCategoryModal.vue b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryModal.vue
new file mode 100644
index 0000000..bb9348c
--- /dev/null
+++ b/src/views/eam/modules/unitCategory/MomBaseUnitCategoryModal.vue
@@ -0,0 +1,63 @@
+<template>
+ <j-modal
+ :title="title"
+ :width="width"
+ :visible="visible"
+ switchFullscreen
+ @ok="handleOk"
+ :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+ @cancel="handleCancel"
+ :footer="null"
+ >
+ <mom-base-unit-category-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></mom-base-unit-category-form>
+ </j-modal>
+</template>
+
+<script>
+ import MomBaseUnitCategoryForm from './MomBaseUnitCategoryForm'
+ export default {
+ name: "MomBaseUnitCategoryModal",
+ components: {
+ MomBaseUnitCategoryForm
+ },
+ data () {
+ return {
+ title:'',
+ width:800,
+ visible: false,
+ disableSubmit: false
+ }
+ },
+ methods: {
+ add (record,{cb}) {
+ this.title="鏂板缓"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.showAdd(record,{cb});
+ })
+ },
+ edit (record,{cb}) {
+ this.title="缂栬緫"
+ this.visible=true
+ this.$nextTick(()=>{
+ this.$refs.realForm.show(record,{cb});
+ })
+ },
+ close () {
+ this.$emit('close');
+ this.visible = false;
+ },
+ handleOk () {
+ this.$refs.realForm.submitForm();
+ },
+ submitCallback(){
+ this.$emit('ok');
+ this.visible = false;
+ },
+ handleCancel () {
+ this.close()
+ },
+
+ }
+ }
+</script>
\ No newline at end of file
--
Gitblit v1.9.3