feat: Enhance HR employee synchronization with new button for department cache refresh and user sync functionality
This commit is contained in:
parent
7d75a72a3a
commit
5e4960c96d
|
|
@ -20,21 +20,26 @@ let extension = {
|
||||||
tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
|
tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
|
||||||
buttons: { view: [], box: [], detail: [] }, //扩展的按钮
|
buttons: { view: [], box: [], detail: [] }, //扩展的按钮
|
||||||
methods: {
|
methods: {
|
||||||
//下面这些方法可以保留也可以删除
|
//下面这些方法可以保留也可以删除
|
||||||
onInit() { //框架初始化配置前,
|
onInit() { //框架初始化配置前,
|
||||||
//示例:在按钮的最前面添加一个按钮
|
//示例:在按钮的最前面添加一个按钮
|
||||||
// this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组
|
this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组
|
||||||
// name: '按钮', //按钮名称
|
name: '刷新部门信息缓存', //按钮名称
|
||||||
// icon: 'el-icon-document', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon
|
icon: 'el-icon-document', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon
|
||||||
// type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html
|
type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html
|
||||||
// //color:"#eee",//自定义按钮颜色
|
//color:"#eee",//自定义按钮颜色
|
||||||
// onClick: function () {
|
onClick: function () {
|
||||||
// this.$Message.success('点击了按钮');
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
//示例:设置修改新建、编辑弹出框字段标签的长度
|
this.http.post('api/HR_DeptSync/cacheDingTalkDept', {}, '刷新钉钉部门缓存中').then((reslut) => {
|
||||||
// this.boxOptions.labelWidth = 150;
|
this.http.post('api/HR_DeptSync/cacheYSERPDept', {}, '刷新YS部门缓存中').then((reslut) => {
|
||||||
|
this.$Message.warning('部门信息缓存刷新成功');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//示例:设置修改新建、编辑弹出框字段标签的长度
|
||||||
|
// this.boxOptions.labelWidth = 150;
|
||||||
},
|
},
|
||||||
onInited() {
|
onInited() {
|
||||||
//框架初始化配置后
|
//框架初始化配置后
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
** 框架文档: http://v3.volcore.xyz/
|
** 框架文档: http://v3.volcore.xyz/
|
||||||
*****************************************************************************************/
|
*****************************************************************************************/
|
||||||
//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理
|
//此js文件是用来自定义扩展业务代码,在当前[表.vue]文件中也可以实现业务处理
|
||||||
|
|
||||||
let extension = {
|
let extension = {
|
||||||
components: {
|
components: {
|
||||||
//查询界面扩展组件
|
//查询界面扩展组件
|
||||||
|
|
@ -20,27 +20,24 @@ let extension = {
|
||||||
tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
|
tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
|
||||||
buttons: { view: [], box: [], detail: [] }, //扩展的按钮
|
buttons: { view: [], box: [], detail: [] }, //扩展的按钮
|
||||||
methods: {
|
methods: {
|
||||||
//下面这些方法可以保留也可以删除
|
//下面这些方法可以保留也可以删除
|
||||||
onInit() { //框架初始化配置前,
|
onInit() { //框架初始化配置前,
|
||||||
//示例:在按钮的最前面添加一个按钮
|
this.buttons.unshift({
|
||||||
this.buttons.unshift({ //也可以用push或者splice方法来修改buttons数组
|
name: '立即同步',
|
||||||
name: '立即同步', //按钮名称
|
icon: 'el-icon-refresh',
|
||||||
icon: 'el-icon-refresh', //按钮图标:https://element.eleme.cn/#/zh-CN/component/icon
|
type: 'primary',
|
||||||
type: 'primary', //按钮样式:https://element-plus.gitee.io/zh-CN/component/button.html
|
onClick: function () {
|
||||||
//color:"#eee",//自定义按钮颜色
|
let url = 'api/HR_EmployeeSync/GenEmpSystemShip';
|
||||||
onClick: function () {
|
|
||||||
let url = 'api/HR_EmployeeSync/GenEmpSystemShip';
|
|
||||||
|
|
||||||
this.http.post(url, {}, '生成关联关系中').then((reslut) => {
|
this.http.post(url, {}, '生成关联关系中').then((reslut) => {
|
||||||
this.$Message.success('生成完成,请点击查询进行刷新');
|
this.$Message.success('生成完成,请点击查询进行刷新');
|
||||||
this.search();
|
this.search();
|
||||||
});
|
|
||||||
// proxy.http.post(url, {}, '生成关联关系中').then((reslut) => {});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
// proxy.http.post(url, {}, '生成关联关系中').then((reslut) => {});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//示例:设置修改新建、编辑弹出框字段标签的长度
|
|
||||||
// this.boxOptions.labelWidth = 150;
|
|
||||||
},
|
},
|
||||||
onInited() {
|
onInited() {
|
||||||
//框架初始化配置后
|
//框架初始化配置后
|
||||||
|
|
@ -78,4 +75,8 @@ let extension = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export default extension;
|
|
||||||
|
function saveClick(row) {
|
||||||
|
|
||||||
|
}
|
||||||
|
export default extension;
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ export default function(){
|
||||||
{field:'YSDeptName',title:'YS部门名称',type:'string',width:60,hidden:true,readonly:true,align:'left'},
|
{field:'YSDeptName',title:'YS部门名称',type:'string',width:60,hidden:true,readonly:true,align:'left'},
|
||||||
{field:'DingTalkDeptId',title:'钉钉部门',type:'string',bind:{ key:'Q002',data:[]},width:60,align:'left'},
|
{field:'DingTalkDeptId',title:'钉钉部门',type:'string',bind:{ key:'Q002',data:[]},width:60,align:'left'},
|
||||||
{field:'DingTalkDeptName',title:'钉钉部门名称',type:'string',width:60,hidden:true,readonly:true,align:'left'},
|
{field:'DingTalkDeptName',title:'钉钉部门名称',type:'string',width:60,hidden:true,readonly:true,align:'left'},
|
||||||
{field:'IsRoot',title:'根节点',type:'bool',width:120,align:'left'}];
|
{field:'IsRoot',title:'根节点',type:'bool',width:120,hidden:true,align:'left'}];
|
||||||
const detail ={columns:[]};
|
const detail ={columns:[]};
|
||||||
const details = [];
|
const details = [];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,79 +5,104 @@
|
||||||
*新版本支持vue或【表.jsx]文件编写业务,文档见:https://v3.volcore.xyz/docs/view-grid、https://v3.volcore.xyz/docs/web
|
*新版本支持vue或【表.jsx]文件编写业务,文档见:https://v3.volcore.xyz/docs/view-grid、https://v3.volcore.xyz/docs/web
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<view-grid ref="grid"
|
<view-grid ref="grid" :columns="columns" :detail="detail" :details="details" :editFormFields="editFormFields"
|
||||||
:columns="columns"
|
:editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
|
||||||
:detail="detail"
|
:table="table" :extend="extend" :onInit="onInit" :onInited="onInited" :searchBefore="searchBefore"
|
||||||
:details="details"
|
:searchAfter="searchAfter" :addBefore="addBefore" :updateBefore="updateBefore" :rowClick="rowClick"
|
||||||
:editFormFields="editFormFields"
|
:modelOpenBefore="modelOpenBefore" :modelOpenAfter="modelOpenAfter">
|
||||||
:editFormOptions="editFormOptions"
|
|
||||||
:searchFormFields="searchFormFields"
|
|
||||||
:searchFormOptions="searchFormOptions"
|
|
||||||
:table="table"
|
|
||||||
:extend="extend"
|
|
||||||
:onInit="onInit"
|
|
||||||
:onInited="onInited"
|
|
||||||
:searchBefore="searchBefore"
|
|
||||||
:searchAfter="searchAfter"
|
|
||||||
:addBefore="addBefore"
|
|
||||||
:updateBefore="updateBefore"
|
|
||||||
:rowClick="rowClick"
|
|
||||||
:modelOpenBefore="modelOpenBefore"
|
|
||||||
:modelOpenAfter="modelOpenAfter">
|
|
||||||
<!-- 自定义组件数据槽扩展,更多数据槽slot见文档 -->
|
<!-- 自定义组件数据槽扩展,更多数据槽slot见文档 -->
|
||||||
<template #gridHeader>
|
<template #gridHeader>
|
||||||
</template>
|
</template>
|
||||||
</view-grid>
|
</view-grid>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import extend from "@/extension/hr/employeesync/HR_EmployeeSync.jsx";
|
import extend from "@/extension/hr/employeesync/HR_EmployeeSync.jsx";
|
||||||
import viewOptions from './HR_EmployeeSync/options.js'
|
import viewOptions from './HR_EmployeeSync/options.js'
|
||||||
import { ref, reactive, getCurrentInstance, watch, onMounted } from "vue";
|
import { ref, reactive, getCurrentInstance, watch, onMounted } from "vue";
|
||||||
const grid = ref(null);
|
const grid = ref(null);
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
//http请求,proxy.http.post/get
|
//http请求,proxy.http.post/get
|
||||||
const { table, editFormFields, editFormOptions, searchFormFields, searchFormOptions, columns, detail, details } = reactive(viewOptions())
|
const { table, editFormFields, editFormOptions, searchFormFields, searchFormOptions, columns, detail, details } = reactive(viewOptions())
|
||||||
|
|
||||||
let gridRef;//对应[表.jsx]文件中this.使用方式一样
|
let gridRef;
|
||||||
//生成对象属性初始化
|
|
||||||
const onInit = async ($vm) => {
|
//同步这个用户
|
||||||
gridRef = $vm;
|
const syncThis = async (row) => {
|
||||||
//与jsx中的this.xx使用一样,只需将this.xx改为gridRef.xx
|
proxy.$confirm('是否同步该用户?', '提示', {
|
||||||
//更多属性见:https://v3.volcore.xyz/docs/view-grid
|
confirmButtonText: '确定',
|
||||||
}
|
cancelButtonText: '取消',
|
||||||
//生成对象属性初始化后,操作明细表配置用到
|
type: 'warning'
|
||||||
const onInited = async () => {
|
}).then(async () => {
|
||||||
}
|
//点击确定
|
||||||
const searchBefore = async (param) => {
|
const res = await proxy.http.post('api/HR_EmployeeSync/SyncYSEmpToDingTalk', row.EmpYSID,'正在同步信息...');
|
||||||
//界面查询前,可以给param.wheres添加查询参数
|
if (res.success) {
|
||||||
//返回false,则不会执行查询
|
proxy.$message({
|
||||||
return true;
|
type: 'success',
|
||||||
}
|
message: '同步成功!'
|
||||||
const searchAfter = async (rows, result) => {
|
});
|
||||||
return true;
|
gridRef.load();
|
||||||
}
|
} else {
|
||||||
const addBefore = async (formData) => {
|
proxy.$message({
|
||||||
//新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
|
type: 'error',
|
||||||
return true;
|
message: res.message
|
||||||
}
|
});
|
||||||
const updateBefore = async (formData) => {
|
}
|
||||||
//编辑保存前formData为对象,包括明细表、删除行的Id
|
}).catch(() => {
|
||||||
return true;
|
//取消操作
|
||||||
}
|
});
|
||||||
const rowClick = ({ row, column, event }) => {
|
}
|
||||||
//查询界面点击行事件
|
const onInit = async ($vm) => {
|
||||||
// grid.value.toggleRowSelection(row); //单击行时选中当前行;
|
gridRef = $vm;
|
||||||
}
|
//最后添加一行保存按钮
|
||||||
const modelOpenBefore = async (row) => {//弹出框打开后方法
|
columns.push({
|
||||||
return true;//返回false,不会打开弹出框
|
title: '操作', //按钮名称
|
||||||
}
|
field: '操作',
|
||||||
const modelOpenAfter = (row) => {
|
align: 'center',
|
||||||
//弹出框打开后方法,设置表单默认值,按钮操作等
|
width: 70,
|
||||||
}
|
fixed: 'right',
|
||||||
//监听表单输入,做实时计算
|
render: (h, { row, column, index }) => {
|
||||||
//watch(() => editFormFields.字段,(newValue, oldValue) => { })
|
return (
|
||||||
//对外暴露数据
|
<div>
|
||||||
defineExpose({})
|
<el-button
|
||||||
|
onClick={($e) => { syncThis(row) }}
|
||||||
|
type="primary" link>同步这个用户</el-button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//生成对象属性初始化后,操作明细表配置用到
|
||||||
|
const onInited = async () => {
|
||||||
|
}
|
||||||
|
const searchBefore = async (param) => {
|
||||||
|
//界面查询前,可以给param.wheres添加查询参数
|
||||||
|
//返回false,则不会执行查询
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
const searchAfter = async (rows, result) => {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
const addBefore = async (formData) => {
|
||||||
|
//新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
const updateBefore = async (formData) => {
|
||||||
|
//编辑保存前formData为对象,包括明细表、删除行的Id
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
const rowClick = ({ row, column, event }) => {
|
||||||
|
//查询界面点击行事件
|
||||||
|
// grid.value.toggleRowSelection(row); //单击行时选中当前行;
|
||||||
|
}
|
||||||
|
const modelOpenBefore = async (row) => {//弹出框打开后方法
|
||||||
|
return true;//返回false,不会打开弹出框
|
||||||
|
}
|
||||||
|
const modelOpenAfter = (row) => {
|
||||||
|
//弹出框打开后方法,设置表单默认值,按钮操作等
|
||||||
|
}
|
||||||
|
//监听表单输入,做实时计算
|
||||||
|
//watch(() => editFormFields.字段,(newValue, oldValue) => { })
|
||||||
|
//对外暴露数据
|
||||||
|
defineExpose({})
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped></style>
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ export default function(){
|
||||||
{field:'EmpJobNumber',title:'员工工号',type:'string',link:true,width:60,readonly:true,align:'left',sort:true},
|
{field:'EmpJobNumber',title:'员工工号',type:'string',link:true,width:60,readonly:true,align:'left',sort:true},
|
||||||
{field:'EmpYSID',title:'员工YSID',type:'string',width:60,readonly:true,align:'left'},
|
{field:'EmpYSID',title:'员工YSID',type:'string',width:60,readonly:true,align:'left'},
|
||||||
{field:'EmpDingDingID',title:'员工钉钉ID',type:'string',width:60,readonly:true,align:'left'},
|
{field:'EmpDingDingID',title:'员工钉钉ID',type:'string',width:60,readonly:true,align:'left'},
|
||||||
{field:'EmpYSMobile',title:'员工YS手机号',type:'string',width:60,readonly:true,align:'left'},
|
{field:'EmpYSMobile',title:'员工YS手机号',type:'string',sort:true,width:60,readonly:true,align:'left'},
|
||||||
{field:'EmpDingDingMobile',title:'员工钉钉手机号',type:'string',width:60,readonly:true,align:'left'},
|
{field:'EmpDingDingMobile',title:'员工钉钉手机号',type:'string',width:60,readonly:true,align:'left'},
|
||||||
{field:'EmpYSDeptID',title:'员工YS所属部门',type:'string',bind:{ key:'Q001',data:[]},width:60,readonly:true,align:'left'},
|
{field:'EmpYSDeptID',title:'员工YS所属部门',type:'string',bind:{ key:'Q001',data:[]},width:60,readonly:true,align:'left'},
|
||||||
{field:'EmpLastSyncInfo',title:'最后一次同步记录',type:'string',width:60,readonly:true,align:'left'},
|
{field:'EmpLastSyncInfo',title:'最后一次同步记录',type:'string',width:60,readonly:true,align:'left'},
|
||||||
|
|
|
||||||
|
|
@ -5,81 +5,66 @@
|
||||||
*新版本支持vue或【表.jsx]文件编写业务,文档见:https://v3.volcore.xyz/docs/view-grid、https://v3.volcore.xyz/docs/web
|
*新版本支持vue或【表.jsx]文件编写业务,文档见:https://v3.volcore.xyz/docs/view-grid、https://v3.volcore.xyz/docs/web
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<view-grid ref="grid"
|
<view-grid ref="grid" :columns="columns" :detail="detail" :details="details" :editFormFields="editFormFields"
|
||||||
:columns="columns"
|
:editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
|
||||||
:detail="detail"
|
:table="table" :extend="extend" :onInit="onInit" :onInited="onInited" :searchBefore="searchBefore"
|
||||||
:details="details"
|
:searchAfter="searchAfter" :addBefore="addBefore" :updateBefore="updateBefore" :rowClick="rowClick"
|
||||||
:editFormFields="editFormFields"
|
:modelOpenBefore="modelOpenBefore" :modelOpenAfter="modelOpenAfter">
|
||||||
:editFormOptions="editFormOptions"
|
|
||||||
:searchFormFields="searchFormFields"
|
|
||||||
:searchFormOptions="searchFormOptions"
|
|
||||||
:table="table"
|
|
||||||
:extend="extend"
|
|
||||||
:onInit="onInit"
|
|
||||||
:onInited="onInited"
|
|
||||||
:searchBefore="searchBefore"
|
|
||||||
:searchAfter="searchAfter"
|
|
||||||
:addBefore="addBefore"
|
|
||||||
:updateBefore="updateBefore"
|
|
||||||
:rowClick="rowClick"
|
|
||||||
:modelOpenBefore="modelOpenBefore"
|
|
||||||
:modelOpenAfter="modelOpenAfter">
|
|
||||||
<!-- 自定义组件数据槽扩展,更多数据槽slot见文档 -->
|
<!-- 自定义组件数据槽扩展,更多数据槽slot见文档 -->
|
||||||
<template #gridHeader>
|
<template #gridHeader>
|
||||||
</template>
|
</template>
|
||||||
</view-grid>
|
</view-grid>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import extend from "@/extension/hr/ysemployees/HR_YSEmployees.jsx";
|
import extend from "@/extension/hr/ysemployees/HR_YSEmployees.jsx";
|
||||||
import viewOptions from './HR_YSEmployees/options.js'
|
import viewOptions from './HR_YSEmployees/options.js'
|
||||||
import { ref, reactive, getCurrentInstance, watch, onMounted } from "vue";
|
import { ref, reactive, getCurrentInstance, watch, onMounted } from "vue";
|
||||||
const grid = ref(null);
|
const grid = ref(null);
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
//http请求,proxy.http.post/get
|
//http请求,proxy.http.post/get
|
||||||
const { table, editFormFields, editFormOptions, searchFormFields, searchFormOptions, columns, detail, details } = reactive(viewOptions())
|
const { table, editFormFields, editFormOptions, searchFormFields, searchFormOptions, columns, detail, details } = reactive(viewOptions())
|
||||||
|
|
||||||
let gridRef;//对应[表.jsx]文件中this.使用方式一样
|
let gridRef;
|
||||||
//生成对象属性初始化
|
|
||||||
const onInit = async ($vm) => {
|
|
||||||
gridRef = $vm;
|
|
||||||
|
|
||||||
gridRef.paginationHide=true;
|
|
||||||
//与jsx中的this.xx使用一样,只需将this.xx改为gridRef.xx
|
const onInit = async ($vm) => {
|
||||||
//更多属性见:https://v3.volcore.xyz/docs/view-grid
|
gridRef = $vm;
|
||||||
}
|
|
||||||
//生成对象属性初始化后,操作明细表配置用到
|
gridRef.paginationHide = true;
|
||||||
const onInited = async () => {
|
|
||||||
}
|
}
|
||||||
const searchBefore = async (param) => {
|
//生成对象属性初始化后,操作明细表配置用到
|
||||||
//界面查询前,可以给param.wheres添加查询参数
|
const onInited = async () => {
|
||||||
//返回false,则不会执行查询
|
}
|
||||||
return true;
|
const searchBefore = async (param) => {
|
||||||
}
|
//界面查询前,可以给param.wheres添加查询参数
|
||||||
const searchAfter = async (rows, result) => {
|
//返回false,则不会执行查询
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
const addBefore = async (formData) => {
|
const searchAfter = async (rows, result) => {
|
||||||
//新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
|
return true;
|
||||||
return true;
|
}
|
||||||
}
|
const addBefore = async (formData) => {
|
||||||
const updateBefore = async (formData) => {
|
//新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
|
||||||
//编辑保存前formData为对象,包括明细表、删除行的Id
|
return true;
|
||||||
return true;
|
}
|
||||||
}
|
const updateBefore = async (formData) => {
|
||||||
const rowClick = ({ row, column, event }) => {
|
//编辑保存前formData为对象,包括明细表、删除行的Id
|
||||||
//查询界面点击行事件
|
return true;
|
||||||
// grid.value.toggleRowSelection(row); //单击行时选中当前行;
|
}
|
||||||
}
|
const rowClick = ({ row, column, event }) => {
|
||||||
const modelOpenBefore = async (row) => {//弹出框打开后方法
|
//查询界面点击行事件
|
||||||
return true;//返回false,不会打开弹出框
|
// grid.value.toggleRowSelection(row); //单击行时选中当前行;
|
||||||
}
|
}
|
||||||
const modelOpenAfter = (row) => {
|
const modelOpenBefore = async (row) => {//弹出框打开后方法
|
||||||
//弹出框打开后方法,设置表单默认值,按钮操作等
|
return true;//返回false,不会打开弹出框
|
||||||
}
|
}
|
||||||
//监听表单输入,做实时计算
|
const modelOpenAfter = (row) => {
|
||||||
//watch(() => editFormFields.字段,(newValue, oldValue) => { })
|
//弹出框打开后方法,设置表单默认值,按钮操作等
|
||||||
//对外暴露数据
|
}
|
||||||
defineExpose({})
|
//监听表单输入,做实时计算
|
||||||
|
//watch(() => editFormFields.字段,(newValue, oldValue) => { })
|
||||||
|
//对外暴露数据
|
||||||
|
defineExpose({})
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped></style>
|
||||||
</style>
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue