|
@@ -19,10 +19,10 @@
|
|
|
</div>
|
|
|
|
|
|
<!--预算分类新增编辑弹窗-->
|
|
|
- <HcDialog bgColor="#ffffff" widths="22rem" isToBody :show="priceModal" :title="priceTitle" @close="priceModalClose">
|
|
|
+ <HcDialog bgColor="#ffffff" widths="22rem" isToBody :show="priceModal" :title="priceTitle" @close="priceModalClose" @save="saveparentClick">
|
|
|
<el-form :model="priceform" label-position="top" label-width="auto" size="large">
|
|
|
<el-form-item label="预算一级科目名称:">
|
|
|
- <el-input v-model="priceform.name"/>
|
|
|
+ <el-input v-model="priceform.dictName"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</HcDialog>
|
|
@@ -37,18 +37,18 @@
|
|
|
<HcIcon name="add"/>
|
|
|
</el-button>
|
|
|
</template>
|
|
|
- <HcTable :column="tableColumn" :datas="tableData" :isIndex="false">
|
|
|
+ <HcTable :column="tableColumn" :datas="tableData" :isIndex="false" :loading="tableLoaing">
|
|
|
<template #action="{row, index}">
|
|
|
- <el-button size="small" type="primary" @click="openEdit(2)">编辑</el-button>
|
|
|
- <el-button size="small" type="primary" @click="delTask">删除</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="openEdit(2,row)">编辑</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="delTask(row)">删除</el-button>
|
|
|
</template>
|
|
|
</HcTable>
|
|
|
|
|
|
<!--任务明细弹窗-->
|
|
|
- <HcDialog bgColor="#ffffff" widths="24rem" isToBody :show="editTaskModal" :title="taskTitle" @close="testModalClose">
|
|
|
+ <HcDialog bgColor="#ffffff" widths="24rem" isToBody :show="editTaskModal" :title="taskTitle" @close="testModalClose" @save="savechilidClick">
|
|
|
<el-form label-position="top" label-width="auto" :model="formLabelAlign" size="large">
|
|
|
<el-form-item label="预算二级科目名称:">
|
|
|
- <el-input v-model="formLabelAlign.name"/>
|
|
|
+ <el-input v-model="formLabelAlign.dictName"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</HcDialog>
|
|
@@ -64,45 +64,52 @@
|
|
|
|
|
|
<script setup>
|
|
|
import {onMounted, ref, watch} from "vue";
|
|
|
+import {submitDictionary,removeDictionary,getParentList,getChildList} from '~api/system/parameter.js';
|
|
|
+import {getArrValue} from "js-fast-way"
|
|
|
|
|
|
const props = defineProps({
|
|
|
cur: {
|
|
|
type: [String,Number],
|
|
|
default: ''
|
|
|
},
|
|
|
+ type:{
|
|
|
+ type: [String,Number],
|
|
|
+ default: ''
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
const tabsKey = ref(props.cur)
|
|
|
+const tabsType = ref(props.type)
|
|
|
|
|
|
//监听
|
|
|
watch(() => [
|
|
|
props.cur,
|
|
|
-], ([key]) => {
|
|
|
+ props.type,
|
|
|
+], ([key,type]) => {
|
|
|
tabsKey.value = key
|
|
|
- console.log(key)
|
|
|
+ tabsType.value = type
|
|
|
+
|
|
|
})
|
|
|
|
|
|
onMounted(() => {
|
|
|
setContextMenu()
|
|
|
+ getParentListData()
|
|
|
+
|
|
|
})
|
|
|
|
|
|
//左侧菜单
|
|
|
-const menuKey = ref('1')
|
|
|
-const menuOptions = ref([
|
|
|
- {key: '1', label: '合同洽谈', badge: 0},
|
|
|
- {key: '2', label: '合同洽谈', badge: 0},
|
|
|
- {key: '3', label: '合同洽谈', badge: 0},
|
|
|
- {key: '4', label: '合同洽谈', badge: 0},
|
|
|
- {key: '5', label: '合同洽谈', badge: 0},
|
|
|
-]);
|
|
|
-
|
|
|
+const menuKey = ref('')
|
|
|
+const menuOptions = ref([]);
|
|
|
+const menuItem=ref({})
|
|
|
const menuChange = (item) => {
|
|
|
console.log(item)
|
|
|
- menuKey.value = item?.key
|
|
|
+ menuKey.value = item?.id
|
|
|
+ menuItem.value=item
|
|
|
+ getChildListData()
|
|
|
}
|
|
|
const menusProps = ref({
|
|
|
- key: 'key',
|
|
|
- label: 'label'
|
|
|
+ key: 'id',
|
|
|
+ label: 'dictName'
|
|
|
})
|
|
|
|
|
|
//菜单的右键菜单
|
|
@@ -117,18 +124,30 @@ const setContextMenu = () => {
|
|
|
|
|
|
//菜单的右键菜单被点击
|
|
|
const contextMenuClick = ({key, item}) => {
|
|
|
+ console.log(item,'item');
|
|
|
+ menuKey.value = item?.id
|
|
|
+
|
|
|
if (key === 'edit') {
|
|
|
openpriceEdit(2)
|
|
|
- menuKey.value = item?.key
|
|
|
+ menuKey.value = item?.id
|
|
|
+ priceform.value.dictName=item.dictName
|
|
|
} else if (key === 'del') {
|
|
|
window?.$messageBox?.alert('您确定要删除该预算分类信息吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {
|
|
|
showCancelButton: true,
|
|
|
confirmButtonText: '确认注销',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
|
- callback: (action) => {
|
|
|
+ callback: async(action) => {
|
|
|
if (action === 'confirm') {
|
|
|
- console.log(11111);
|
|
|
+ const {error, code, msg} = await removeDictionary({
|
|
|
+ ids: item?.id,
|
|
|
+ })
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window?.$message?.success('删除成功')
|
|
|
+ getParentListData()
|
|
|
+ } else {
|
|
|
+ window?.$message?.warning(msg)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -140,6 +159,8 @@ const priceModal = ref(false)
|
|
|
const openpriceEdit = (type) => {
|
|
|
if (type === 1) {
|
|
|
priceTitle.value = '新增分类'
|
|
|
+ priceform.value={}
|
|
|
+ menuKey.value=''
|
|
|
} else {
|
|
|
priceTitle.value = '编辑分类'
|
|
|
}
|
|
@@ -153,14 +174,24 @@ const priceModalClose = () => {
|
|
|
}
|
|
|
|
|
|
const taskTitle = ref('')
|
|
|
-const openEdit = (type) => {
|
|
|
+const openEdit = (type,row) => {
|
|
|
+
|
|
|
if (type === 1) {
|
|
|
+ formLabelAlign.value.dictName=''
|
|
|
+ formLabelAlign.value.id=''
|
|
|
taskTitle.value = '新增'
|
|
|
} else {
|
|
|
+ formLabelAlign.value.dictName=row.dictName
|
|
|
+ formLabelAlign.value.id=row.id
|
|
|
taskTitle.value = '编辑'
|
|
|
}
|
|
|
-
|
|
|
- editTaskModal.value = true
|
|
|
+ if(menuKey.value){
|
|
|
+
|
|
|
+ editTaskModal.value = true
|
|
|
+ }else{
|
|
|
+ window.$message.warning('请先选择一级科目')
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -169,32 +200,36 @@ const testModalClose = () => {
|
|
|
editTaskModal.value = false
|
|
|
}
|
|
|
|
|
|
-const delTask = () => {
|
|
|
- window?.$messageBox?.alert('您确定要删除该预算科目吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {
|
|
|
- showCancelButton: true,
|
|
|
- confirmButtonText: '确认注销',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- callback: (action) => {
|
|
|
- if (action === 'confirm') {
|
|
|
- console.log(11111);
|
|
|
+const delTask = (item) => {
|
|
|
+ window?.$messageBox?.alert('您确定要删除该预算科目信息吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {
|
|
|
+ showCancelButton: true,
|
|
|
+ confirmButtonText: '确认注销',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ callback: async(action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ const {error, code, msg} = await removeDictionary({
|
|
|
+ ids: item?.id,
|
|
|
+ })
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window?.$message?.success('删除成功')
|
|
|
+ getParentListData()
|
|
|
+ } else {
|
|
|
+ window?.$message?.warning(msg)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- })
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const tableColumn = [
|
|
|
- {key: 'name', name: '预算二级科目',align:'center'},
|
|
|
+ {key: 'dictName', name: '预算二级科目',align:'center'},
|
|
|
// {key: 'text', name: '任务内容'},
|
|
|
// {key: 'color', name: '完成指标'},
|
|
|
{key: 'action', name: '操作', width: 200}
|
|
|
]
|
|
|
-const tableData = ref([
|
|
|
- {name: '名称1', text: '文本1', color: 'red'},
|
|
|
- {name: '名称2', text: '文本2', color: 'blue'},
|
|
|
- {name: '名称3', text: '文本3', color: '无'}
|
|
|
-])
|
|
|
-
|
|
|
+const tableData = ref([])
|
|
|
+const tableLoaing=ref(false)
|
|
|
const formLabelAlign = ref({
|
|
|
name: '',
|
|
|
region: '',
|
|
@@ -210,6 +245,75 @@ const pageChange = ({current, size}) => {
|
|
|
searchForm.value.current = current
|
|
|
searchForm.value.size = size
|
|
|
}
|
|
|
+//新增一级科目
|
|
|
+const saveparentClick=async()=>{
|
|
|
+ const { error, code, data,msg } = await submitDictionary({
|
|
|
+ type:tabsType.value,
|
|
|
+ dictName:priceform.value?.dictName,
|
|
|
+ id:menuKey.value||null,
|
|
|
+ })
|
|
|
+
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window.$message?.success(msg)
|
|
|
+ priceModal.value=false
|
|
|
+ getParentListData()
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ window.$message?.warning(msg)
|
|
|
+ }
|
|
|
+}
|
|
|
+//新增二级级科目
|
|
|
+const savechilidClick=async()=>{
|
|
|
+ const { error, code, data,msg } = await submitDictionary({
|
|
|
+ type:tabsType.value,
|
|
|
+ dictName:formLabelAlign.value?.dictName,
|
|
|
+ id:formLabelAlign.value.id||null,
|
|
|
+ parentId:menuKey.value
|
|
|
+ })
|
|
|
+
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window.$message?.success(msg)
|
|
|
+ editTaskModal.value=false
|
|
|
+ getChildListData()
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ window.$message?.warning(msg)
|
|
|
+ }
|
|
|
+}
|
|
|
+//获取一级科目
|
|
|
+const getParentListData=async()=>{
|
|
|
+ const { error, code, data,msg } = await getParentList({
|
|
|
+ type:1,
|
|
|
+
|
|
|
+ })
|
|
|
+ if (!error && code === 200) {
|
|
|
+ menuOptions.value = getArrValue(data['records'])
|
|
|
+ if( menuOptions.value.length>0){
|
|
|
+ menuKey.value= menuOptions.value[0]?.id
|
|
|
+ menuItem.value.id = menuOptions.value[0]?.id
|
|
|
+ getChildListData()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ window.$message?.warning(msg)
|
|
|
+ }
|
|
|
+}
|
|
|
+//获取二级科目
|
|
|
+const getChildListData=async()=>{
|
|
|
+ tableLoaing.value=true
|
|
|
+ const { error, code, data,msg } = await getChildList({
|
|
|
+ parentId: menuItem.value.id,
|
|
|
+ type:1,
|
|
|
+ })
|
|
|
+ tableLoaing.value=false
|
|
|
+ if (!error && code === 200) {
|
|
|
+ tableData.value=getArrValue(data)
|
|
|
+ // tab.value = getArrValue(data['records'])
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ window.$message?.warning(msg)
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|