This commit is contained in:
sundongyu 2024-05-22 16:35:51 +08:00
commit e201a26ae1
76 changed files with 217 additions and 208 deletions

View File

@ -1,6 +1,6 @@
import request from '@/config/axios' import request from '@/config/axios'
export const getProcessDefinition = async (id: number, key: string) => { export const getProcessDefinition = async (id: number, key?: string) => {
return await request.get({ return await request.get({
url: '/bpm/process-definition/get', url: '/bpm/process-definition/get',
params: { id, key } params: { id, key }

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> <!-- <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -126,7 +126,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' // import download from '@/utils/download'
import { CategoryApi, CategoryVO } from '@/api/bpm/category' import { CategoryApi, CategoryVO } from '@/api/bpm/category'
import CategoryForm from './CategoryForm.vue' import CategoryForm from './CategoryForm.vue'
@ -139,7 +139,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<CategoryVO[]>([]) // const list = ref<CategoryVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,
@ -148,7 +148,7 @@ const queryParams = reactive({
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // // const exportLoading = ref(false) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> <!-- <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="审批接入(流程表单)" url="https://doc.iocoder.cn/bpm/use-bpm-form/" /> <!-- <doc-alert title="审批接入(流程表单)" url="https://doc.iocoder.cn/bpm/use-bpm-form/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -28,7 +28,7 @@
<Icon class="mr-5px" icon="ep:refresh" /> <Icon class="mr-5px" icon="ep:refresh" />
重置 重置
</el-button> </el-button>
<el-button v-hasPermi="['bpm:form:create']" plain type="primary" @click="openForm"> <el-button v-hasPermi="['bpm:form:create']" plain type="primary" @click="openForm()">
<Icon class="mr-5px" icon="ep:plus" /> <Icon class="mr-5px" icon="ep:plus" />
新增 新增
</el-button> </el-button>

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> <!-- <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -129,7 +129,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,

View File

@ -1,11 +1,11 @@
<template> <template>
<doc-alert title="流程设计器BPMN" url="https://doc.iocoder.cn/bpm/model-designer-dingding/" /> <!-- <doc-alert title="流程设计器BPMN" url="https://doc.iocoder.cn/bpm/model-designer-dingding/" />
<doc-alert <doc-alert
title="流程设计器(钉钉、飞书)" title="流程设计器(钉钉、飞书)"
url="https://doc.iocoder.cn/bpm/model-designer-bpmn/" url="https://doc.iocoder.cn/bpm/model-designer-bpmn/"
/> />
<doc-alert title="选择审批人、发起人自选" url="https://doc.iocoder.cn/bpm/assignee/" /> <doc-alert title="选择审批人、发起人自选" url="https://doc.iocoder.cn/bpm/assignee/" />
<doc-alert title="会签、或签、依次审批" url="https://doc.iocoder.cn/bpm/multi-instance/" /> <doc-alert title="会签、或签、依次审批" url="https://doc.iocoder.cn/bpm/multi-instance/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -262,7 +262,7 @@ const queryParams = reactive({
category: undefined category: undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const categoryList = ref([]) // const categoryList: any = ref([]) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="审批接入(业务表单)" url="https://doc.iocoder.cn/bpm/use-business-form/" /> <!-- <doc-alert title="审批接入(业务表单)" url="https://doc.iocoder.cn/bpm/use-business-form/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -167,7 +167,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
type: undefined, type: undefined,
@ -219,6 +219,7 @@ const handleDetail = (row: LeaveApi.LeaveVO) => {
/** 取消请假操作 */ /** 取消请假操作 */
const cancelLeave = async (row) => { const cancelLeave = async (row) => {
// //
// @ts-expect-error
const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', { const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
confirmButtonText: t('common.ok'), confirmButtonText: t('common.ok'),
cancelButtonText: t('common.cancel'), cancelButtonText: t('common.cancel'),

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> <!-- <doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> -->
<!-- 第一步通过流程定义的列表选择对应的流程 --> <!-- 第一步通过流程定义的列表选择对应的流程 -->
<ContentWrap v-if="!selectProcessDefinition" v-loading="loading"> <ContentWrap v-if="!selectProcessDefinition" v-loading="loading">
@ -92,6 +92,7 @@
<ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML as any" /> <ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML as any" />
</ContentWrap> </ContentWrap>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as DefinitionApi from '@/api/bpm/definition' import * as DefinitionApi from '@/api/bpm/definition'
import * as ProcessInstanceApi from '@/api/bpm/processInstance' import * as ProcessInstanceApi from '@/api/bpm/processInstance'
@ -111,7 +112,7 @@ const { delView } = useTagsViewStore() // 视图操作
const processInstanceId = route.query.processInstanceId const processInstanceId = route.query.processInstanceId
const loading = ref(true) // const loading = ref(true) //
const categoryList = ref([]) // const categoryList:any = ref([]) //
const categoryActive = ref('') // const categoryActive = ref('') //
const processDefinitionList = ref([]) // const processDefinitionList = ref([]) //
@ -166,14 +167,14 @@ const selectProcessDefinition = ref() // 选择的流程定义
// //
const bpmnXML = ref(null) // BPMN const bpmnXML = ref(null) // BPMN
const startUserSelectTasks = ref([]) // const startUserSelectTasks: any = ref([]) //
const startUserSelectAssignees = ref({}) // const startUserSelectAssignees = ref({}) //
const startUserSelectAssigneesFormRef = ref() // Ref const startUserSelectAssigneesFormRef = ref() // Ref
const startUserSelectAssigneesFormRules = ref({}) // Rules const startUserSelectAssigneesFormRules = ref({}) // Rules
const userList = ref<any[]>([]) // const userList = ref<any[]>([]) //
/** 处理选择流程的按钮操作 **/ /** 处理选择流程的按钮操作 **/
const handleSelect = async (row, formVariables) => { const handleSelect = async (row?, formVariables?) => {
// //
selectProcessDefinition.value = row selectProcessDefinition.value = row

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> <!-- <doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -177,7 +177,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: '', name: '',
@ -187,7 +187,7 @@ const queryParams = reactive({
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const categoryList = ref([]) // const categoryList: any = ref([]) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {
@ -214,7 +214,7 @@ const resetQuery = () => {
} }
/** 发起流程操作 **/ /** 发起流程操作 **/
const handleCreate = (id) => { const handleCreate = (id?) => {
router.push({ router.push({
name: 'BpmProcessInstanceCreate', name: 'BpmProcessInstanceCreate',
query: { processInstanceId: id } query: { processInstanceId: id }

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> <!-- <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="执行监听器、任务监听器" url="https://doc.iocoder.cn/bpm/listener/" /> <!-- <doc-alert title="执行监听器、任务监听器" url="https://doc.iocoder.cn/bpm/listener/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -23,7 +23,7 @@
<el-select v-model="queryParams.type" placeholder="请选择类型" clearable class="!w-240px"> <el-select v-model="queryParams.type" placeholder="请选择类型" clearable class="!w-240px">
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.BPM_PROCESS_LISTENER_TYPE)" v-for="dict in getStrDictOptions(DICT_TYPE.BPM_PROCESS_LISTENER_TYPE)"
:key="dict.value" :key="dict.value as any"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
/> />
@ -133,7 +133,7 @@ const queryParams = reactive({
event: undefined event: undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // // const exportLoading = ref(false) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {

View File

@ -1,9 +1,9 @@
<!-- 工作流 - 抄送我的流程 --> <!-- 工作流 - 抄送我的流程 -->
<template> <template>
<doc-alert <!-- <doc-alert
title="审批转办、委派、抄送" title="审批转办、委派、抄送"
url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/" url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -87,7 +87,7 @@ const { push } = useRouter() // 路由
const loading = ref(false) // const loading = ref(false) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
processInstanceId: '', processInstanceId: '',

View File

@ -1,11 +1,11 @@
<template> <template>
<doc-alert title="审批通过、不通过、驳回" url="https://doc.iocoder.cn/bpm/task-todo-done/" /> <!-- <doc-alert title="审批通过、不通过、驳回" url="https://doc.iocoder.cn/bpm/task-todo-done/" />
<doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> <doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" />
<doc-alert <doc-alert
title="审批转办、委派、抄送" title="审批转办、委派、抄送"
url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/" url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/"
/> />
<doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> <doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -121,7 +121,7 @@ const { push } = useRouter() // 路由
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: '', name: '',

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> <!-- <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -117,7 +117,7 @@ const { push } = useRouter() // 路由
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: '', name: '',

View File

@ -1,11 +1,11 @@
<template> <template>
<doc-alert title="审批通过、不通过、驳回" url="https://doc.iocoder.cn/bpm/task-todo-done/" /> <!-- <doc-alert title="审批通过、不通过、驳回" url="https://doc.iocoder.cn/bpm/task-todo-done/" />
<doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> <doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" />
<doc-alert <doc-alert
title="审批转办、委派、抄送" title="审批转办、委派、抄送"
url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/" url="https://doc.iocoder.cn/bpm/task-delegation-and-cc/"
/> />
<doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> <doc-alert title="审批加签、减签" url="https://doc.iocoder.cn/bpm/sign/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -103,7 +103,7 @@ const { push } = useRouter() // 路由
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: '', name: '',

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【通用】跟进记录、待办事项" url="https://doc.iocoder.cn/crm/follow-up/" /> <!-- <doc-alert title="【通用】跟进记录、待办事项" url="https://doc.iocoder.cn/crm/follow-up/" /> -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4" class="min-w-[200px]"> <el-col :span="4" class="min-w-[200px]">

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【商机】商机管理、商机状态" url="https://doc.iocoder.cn/crm/business/" /> <!-- <doc-alert title="【商机】商机管理、商机状态" url="https://doc.iocoder.cn/crm/business/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -219,7 +219,7 @@ const resetQuery = () => {
/** tab 切换 */ /** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.sceneType = tab.paneName queryParams.sceneType = tab.paneName!.toString()
handleQuery() handleQuery()
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【商机】商机管理、商机状态" url="https://doc.iocoder.cn/crm/business/" /> <!-- <doc-alert title="【商机】商机管理、商机状态" url="https://doc.iocoder.cn/crm/business/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -80,10 +80,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' // import download from '@/utils/download'
import * as BusinessStatusApi from '@/api/crm/business/status' import * as BusinessStatusApi from '@/api/crm/business/status'
import BusinessStatusForm from './BusinessStatusForm.vue' import BusinessStatusForm from './BusinessStatusForm.vue'
import { deleteBusinessStatus } from '@/api/crm/business/status' // import { deleteBusinessStatus } from '@/api/crm/business/status'
defineOptions({ name: 'CrmBusinessStatus' }) defineOptions({ name: 'CrmBusinessStatus' })
@ -98,7 +98,7 @@ const queryParams = reactive({
pageSize: 10 pageSize: 10
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // // const exportLoading = ref(false) //
/** 查询列表 */ /** 查询列表 */
const getList = async () => { const getList = async () => {
@ -112,17 +112,17 @@ const getList = async () => {
} }
} }
/** 搜索按钮操作 */ // /** */
const handleQuery = () => { // const handleQuery = () => {
queryParams.pageNo = 1 // queryParams.pageNo = 1
getList() // getList()
} // }
/** 重置按钮操作 */ // /** */
const resetQuery = () => { // const resetQuery = () => {
queryFormRef.value.resetFields() // queryFormRef.value.resetFields()
handleQuery() // handleQuery()
} // }
/** 添加/修改操作 */ /** 添加/修改操作 */
const formRef = ref() const formRef = ref()

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【线索】线索管理" url="https://doc.iocoder.cn/crm/clue/" /> <!-- <doc-alert title="【线索】线索管理" url="https://doc.iocoder.cn/crm/clue/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -219,7 +219,7 @@ const resetQuery = () => {
/** tab 切换 */ /** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.sceneType = tab.paneName queryParams.sceneType = tab.paneName!.toString()
handleQuery() handleQuery()
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" /> <!-- <doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -275,7 +275,7 @@ const resetQuery = () => {
/** tab 切换 */ /** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.sceneType = tab.paneName queryParams.sceneType = tab.paneName!.toString()
handleQuery() handleQuery()
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【合同】合同管理、合同提醒" url="https://doc.iocoder.cn/crm/contract/" /> <!-- <doc-alert title="【合同】合同管理、合同提醒" url="https://doc.iocoder.cn/crm/contract/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<el-form <el-form

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【合同】合同管理、合同提醒" url="https://doc.iocoder.cn/crm/contract/" /> <!-- <doc-alert title="【合同】合同管理、合同提醒" url="https://doc.iocoder.cn/crm/contract/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" /> <!-- <doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" /> <!-- <doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" /> <!-- <doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -79,7 +79,7 @@
<Icon class="mr-5px" icon="ep:search" /> <Icon class="mr-5px" icon="ep:search" />
搜索 搜索
</el-button> </el-button>
<el-button @click="resetQuery(undefined)"> <el-button @click="resetQuery()">
<Icon class="mr-5px" icon="ep:refresh" /> <Icon class="mr-5px" icon="ep:refresh" />
重置 重置
</el-button> </el-button>

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" /> <!-- <doc-alert title="【客户】客户管理、公海客户" url="https://doc.iocoder.cn/crm/customer/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<el-form <el-form

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【产品】产品管理、产品分类" url="https://doc.iocoder.cn/crm/product/" /> <!-- <doc-alert title="【产品】产品管理、产品分类" url="https://doc.iocoder.cn/crm/product/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【产品】产品管理、产品分类" url="https://doc.iocoder.cn/crm/product/" /> <!-- <doc-alert title="【产品】产品管理、产品分类" url="https://doc.iocoder.cn/crm/product/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【回款】回款管理、回款计划" url="https://doc.iocoder.cn/crm/receivable/" /> <!-- <doc-alert title="【回款】回款管理、回款计划" url="https://doc.iocoder.cn/crm/receivable/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -235,7 +235,7 @@ const customerList = ref<CustomerApi.CustomerVO[]>([]) // 客户列表
/** tab 切换 */ /** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.sceneType = tab.paneName queryParams.sceneType = tab.paneName!.toString()
handleQuery() handleQuery()
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="【回款】回款管理、回款计划" url="https://doc.iocoder.cn/crm/receivable/" /> <!-- <doc-alert title="【回款】回款管理、回款计划" url="https://doc.iocoder.cn/crm/receivable/" />
<doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> <doc-alert title="【通用】数据权限" url="https://doc.iocoder.cn/crm/permission/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -247,7 +247,7 @@ const customerList = ref<CustomerApi.CustomerVO[]>([]) // 客户列表
/** tab 切换 */ /** tab 切换 */
const handleTabClick = (tab: TabsPaneContext) => { const handleTabClick = (tab: TabsPaneContext) => {
queryParams.sceneType = tab.paneName queryParams.sceneType = tab.paneName!.toString()
handleQuery() handleQuery()
} }

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert <!-- <doc-alert
title="【财务】采购付款、销售收款" title="【财务】采购付款、销售收款"
url="https://doc.iocoder.cn/sale/finance-payment-receipt/" url="https://doc.iocoder.cn/sale/finance-payment-receipt/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -128,7 +128,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { AccountApi, AccountVO } from '@/api/erp/finance/account' import { AccountApi, AccountVO } from '@/api/erp/finance/account'
@ -198,7 +198,7 @@ const handleDelete = async (id: number) => {
} }
/** 修改默认状态 */ /** 修改默认状态 */
const handleDefaultStatusChange = async (row: WarehouseVO) => { const handleDefaultStatusChange = async (row) => {
try { try {
// //
const text = row.defaultStatus ? '设置' : '取消' const text = row.defaultStatus ? '设置' : '取消'

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert <!-- <doc-alert
title="【财务】采购付款、销售收款" title="【财务】采购付款、销售收款"
url="https://doc.iocoder.cn/sale/finance-payment-receipt/" url="https://doc.iocoder.cn/sale/finance-payment-receipt/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -284,7 +284,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<FinancePaymentVO[]>([]) // const list = ref<FinancePaymentVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert <!-- <doc-alert
title="【财务】采购付款、销售收款" title="【财务】采购付款、销售收款"
url="https://doc.iocoder.cn/sale/finance-payment-receipt/" url="https://doc.iocoder.cn/sale/finance-payment-receipt/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -284,7 +284,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<FinanceReceiptVO[]>([]) // const list = ref<FinanceReceiptVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams:any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="ERP 手册(功能开启)" url="https://doc.iocoder.cn/erp/build/" /> <!-- <doc-alert title="ERP 手册(功能开启)" url="https://doc.iocoder.cn/erp/build/" /> -->
<div class="flex flex-col"> <div class="flex flex-col">
<!-- 销售/采购的全局统计 --> <!-- 销售/采购的全局统计 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> <!-- <doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -139,8 +139,11 @@ const loading = ref(true) // 列表的加载中
const list = ref<ProductCategoryVO[]>([]) // const list = ref<ProductCategoryVO[]>([]) //
const queryParams = reactive({ const queryParams = reactive({
name: undefined, name: undefined,
status: undefined status: undefined,
pageNo: 1, //
pageSize: 10 //
}) })
const total = ref()
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
@ -148,7 +151,7 @@ const exportLoading = ref(false) // 导出的加载中
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
try { try {
const data = await ProductCategoryApi.getProductCategoryList(queryParams) const data = await ProductCategoryApi.getProductCategoryList()
list.value = handleTree(data, 'id', 'parentId') list.value = handleTree(data, 'id', 'parentId')
} finally { } finally {
loading.value = false loading.value = false

View File

@ -1,6 +1,6 @@
<!-- ERP 产品列表 --> <!-- ERP 产品列表 -->
<template> <template>
<doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> <!-- <doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> <!-- <doc-alert title="【产品】产品信息、分类、单位" url="https://doc.iocoder.cn/erp/product/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> <!-- <doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -327,7 +327,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<PurchaseInVO[]>([]) // const list = ref<PurchaseInVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> <!-- <doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -297,7 +297,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<PurchaseOrderVO[]>([]) // const list = ref<PurchaseOrderVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> <!-- <doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -327,7 +327,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<PurchaseReturnVO[]>([]) // const list = ref<PurchaseReturnVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> <!-- <doc-alert title="【采购】采购订单、入库、退货" url="https://doc.iocoder.cn/erp/purchase/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -112,7 +112,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' // import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { SupplierApi, SupplierVO } from '@/api/erp/purchase/supplier' import { SupplierApi, SupplierVO } from '@/api/erp/purchase/supplier'
import SupplierForm from './SupplierForm.vue' import SupplierForm from './SupplierForm.vue'

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> <!-- <doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -112,7 +112,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' // import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer' import { CustomerApi, CustomerVO } from '@/api/erp/sale/customer'
import CustomerForm from './CustomerForm.vue' import CustomerForm from './CustomerForm.vue'

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> <!-- <doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -297,7 +297,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<SaleOrderVO[]>([]) // const list = ref<SaleOrderVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> <!-- <doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -322,7 +322,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<SaleOutVO[]>([]) // const list = ref<SaleOutVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> <!-- <doc-alert title="【销售】销售订单、出库、退货" url="https://doc.iocoder.cn/erp/sale/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -327,7 +327,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<SaleReturnVO[]>([]) // const list = ref<SaleReturnVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams:any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert <!-- <doc-alert
title="【库存】库存调拨、库存盘点" title="【库存】库存调拨、库存盘点"
url="https://doc.iocoder.cn/erp/stock-move-check/" url="https://doc.iocoder.cn/erp/stock-move-check/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -251,7 +251,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockCheckVO[]>([]) // const list = ref<StockCheckVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【库存】其它入库、其它出库" url="https://doc.iocoder.cn/erp/stock-in-out/" /> <!-- <doc-alert title="【库存】其它入库、其它出库" url="https://doc.iocoder.cn/erp/stock-in-out/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -266,7 +266,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockInVO[]>([]) // const list = ref<StockInVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert <!-- <doc-alert
title="【库存】库存调拨、库存盘点" title="【库存】库存调拨、库存盘点"
url="https://doc.iocoder.cn/erp/stock-move-check/" url="https://doc.iocoder.cn/erp/stock-move-check/"
/> /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -251,7 +251,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockMoveVO[]>([]) // const list = ref<StockMoveVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams:any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【库存】其它入库、其它出库" url="https://doc.iocoder.cn/erp/stock-in-out/" /> <!-- <doc-alert title="【库存】其它入库、其它出库" url="https://doc.iocoder.cn/erp/stock-in-out/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -252,7 +252,7 @@ import { StockOutApi, StockOutVO } from '@/api/erp/stock/out'
import StockOutForm from './StockOutForm.vue' import StockOutForm from './StockOutForm.vue'
import { ProductApi, ProductVO } from '@/api/erp/product/product' import { ProductApi, ProductVO } from '@/api/erp/product/product'
import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse' import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse'
import { SupplierApi, SupplierVO } from '@/api/erp/purchase/supplier' // import { SupplierApi, SupplierVO } from '@/api/erp/purchase/supplier'
import { UserVO } from '@/api/system/user' import { UserVO } from '@/api/system/user'
import * as UserApi from '@/api/system/user' import * as UserApi from '@/api/system/user'
import { erpCountTableColumnFormatter, erpPriceTableColumnFormatter } from '@/utils' import { erpCountTableColumnFormatter, erpPriceTableColumnFormatter } from '@/utils'
@ -267,7 +267,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockOutVO[]>([]) // const list = ref<StockOutVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
no: undefined, no: undefined,

View File

@ -1,6 +1,6 @@
<!-- ERP 产品库存明细列表 --> <!-- ERP 产品库存明细列表 -->
<template> <template>
<doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> <!-- <doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -159,12 +159,12 @@ import { erpCountTableColumnFormatter } from '@/utils'
defineOptions({ name: 'ErpStockRecord' }) defineOptions({ name: 'ErpStockRecord' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // // const { t } = useI18n() //
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockRecordVO[]>([]) // const list = ref<StockRecordVO[]>([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
productId: undefined, productId: undefined,
@ -209,17 +209,17 @@ const openForm = (type: string, id?: number) => {
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (id: number) => { // const handleDelete = async (id: number) => {
try { // try {
// // //
await message.delConfirm() // await message.delConfirm()
// // //
await StockRecordApi.deleteStockRecord(id) // await StockRecordApi.deleteStockRecord(id)
message.success(t('common.delSuccess')) // message.success(t('common.delSuccess'))
// // //
await getList() // await getList()
} catch {} // } catch {}
} // }
/** 导出按钮操作 */ /** 导出按钮操作 */
const handleExport = async () => { const handleExport = async () => {

View File

@ -1,6 +1,6 @@
<!-- ERP 产品库存列表 --> <!-- ERP 产品库存列表 -->
<template> <template>
<doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> <!-- <doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -102,7 +102,7 @@ import { erpCountTableColumnFormatter } from '@/utils'
defineOptions({ name: 'ErpStock' }) defineOptions({ name: 'ErpStock' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // // const { t } = useI18n() //
const loading = ref(true) // const loading = ref(true) //
const list = ref<StockVO[]>([]) // const list = ref<StockVO[]>([]) //
@ -149,17 +149,17 @@ const openForm = (type: string, id?: number) => {
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (id: number) => { // const handleDelete = async (id: number) => {
try { // try {
// // //
await message.delConfirm() // await message.delConfirm()
// // //
await StockApi.deleteStock(id) // await StockApi.deleteStock(id)
message.success(t('common.delSuccess')) // message.success(t('common.delSuccess'))
// // //
await getList() // await getList()
} catch {} // } catch {}
} // }
/** 导出按钮操作 */ /** 导出按钮操作 */
const handleExport = async () => { const handleExport = async () => {

View File

@ -1,6 +1,6 @@
<!-- ERP 仓库列表 --> <!-- ERP 仓库列表 -->
<template> <template>
<doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> <!-- <doc-alert title="【库存】产品库存、库存明细" url="https://doc.iocoder.cn/erp/stock/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="系统日志" url="https://doc.iocoder.cn/system-log/" /> <!-- <doc-alert title="系统日志" url="https://doc.iocoder.cn/system-log/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -160,7 +160,7 @@ const message = useMessage() // 消息弹窗
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams:any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
userId: null, userId: null,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="系统日志" url="https://doc.iocoder.cn/system-log/" /> <!-- <doc-alert title="系统日志" url="https://doc.iocoder.cn/system-log/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -173,7 +173,7 @@ const message = useMessage() // 消息弹窗
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams:any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
userId: null, userId: null,

View File

@ -1,8 +1,8 @@
<template> <template>
<doc-alert title="代码生成(单表)" url="https://doc.iocoder.cn/new-feature/" /> <!-- <doc-alert title="代码生成(单表)" url="https://doc.iocoder.cn/new-feature/" />
<doc-alert title="代码生成(树表)" url="https://doc.iocoder.cn/new-feature/tree/" /> <doc-alert title="代码生成(树表)" url="https://doc.iocoder.cn/new-feature/tree/" />
<doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> <doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" />
<doc-alert title="单元测试" url="https://doc.iocoder.cn/unit-test/" /> <doc-alert title="单元测试" url="https://doc.iocoder.cn/unit-test/" /> -->
<!-- 搜索 --> <!-- 搜索 -->
<ContentWrap> <ContentWrap>
@ -168,7 +168,7 @@ const { push } = useRouter() // 路由跳转
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
tableName: undefined, tableName: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="配置中心" url="https://doc.iocoder.cn/config-center/" /> <!-- <doc-alert title="配置中心" url="https://doc.iocoder.cn/config-center/" /> -->
<!-- 搜索 --> <!-- 搜索 -->
<ContentWrap> <ContentWrap>
@ -152,7 +152,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="代码生成(单表)" url="https://doc.iocoder.cn/new-feature/" /> <!-- <doc-alert title="代码生成(单表)" url="https://doc.iocoder.cn/new-feature/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -139,7 +139,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref([]) // const list = ref([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="代码生成(树表)" url="https://doc.iocoder.cn/new-feature/tree/" /> <!-- <doc-alert title="代码生成(树表)" url="https://doc.iocoder.cn/new-feature/tree/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -125,11 +125,14 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
name: null, name: null,
parentId: null, parentId: null,
createTime: [] createTime: [],
pageNo: 1, //
pageSize: 10 //
}) })
const total = ref()
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
@ -137,7 +140,8 @@ const exportLoading = ref(false) // 导出的加载中
const getList = async () => { const getList = async () => {
loading.value = true loading.value = true
try { try {
const data = await Demo02CategoryApi.getDemo02CategoryList(queryParams) const data = await Demo02CategoryApi.getDemo02CategoryList()
// @ts-expect-error
list.value = handleTree(data, 'id', 'parentId') list.value = handleTree(data, 'id', 'parentId')
} finally { } finally {
loading.value = false loading.value = false

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> <!-- <doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -166,7 +166,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref([]) // const list = ref([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,
@ -236,7 +236,7 @@ const handleExport = async () => {
} }
/** 选中行操作 */ /** 选中行操作 */
const currentRow = ref({}) // const currentRow: any = ref({}) //
const handleCurrentChange = (row) => { const handleCurrentChange = (row) => {
currentRow.value = row currentRow.value = row
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> <!-- <doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -153,7 +153,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref([]) // const list = ref([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> <!-- <doc-alert title="代码生成(主子表)" url="https://doc.iocoder.cn/new-feature/master-sub/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -138,7 +138,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const list = ref([]) // const list = ref([]) //
const total = ref(0) // const total = ref(0) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="数据库 MyBatis" url="https://doc.iocoder.cn/mybatis/" /> <!-- <doc-alert title="数据库 MyBatis" url="https://doc.iocoder.cn/mybatis/" />
<doc-alert title="多数据源(读写分离)" url="https://doc.iocoder.cn/dynamic-datasource/" /> <doc-alert title="多数据源(读写分离)" url="https://doc.iocoder.cn/dynamic-datasource/" /> -->
<ContentWrap> <ContentWrap>
<IFrame v-if="!loading" :src="url" /> <IFrame v-if="!loading" :src="url" />

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" /> <!-- <doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" /> -->
<!-- 搜索 --> <!-- 搜索 -->
<ContentWrap> <ContentWrap>
<el-form <el-form
@ -129,7 +129,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" /> <!-- <doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" /> -->
<!-- 搜索 --> <!-- 搜索 -->
<ContentWrap> <ContentWrap>
@ -140,7 +140,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,

View File

@ -1,7 +1,7 @@
<template> <template>
<doc-alert title="定时任务" url="https://doc.iocoder.cn/job/" /> <!-- <doc-alert title="定时任务" url="https://doc.iocoder.cn/job/" />
<doc-alert title="异步任务" url="https://doc.iocoder.cn/async-task/" /> <doc-alert title="异步任务" url="https://doc.iocoder.cn/async-task/" />
<doc-alert title="消息队列" url="https://doc.iocoder.cn/message-queue/" /> <doc-alert title="消息队列" url="https://doc.iocoder.cn/message-queue/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,7 +1,7 @@
<template> <template>
<doc-alert title="定时任务" url="https://doc.iocoder.cn/job/" /> <!-- <doc-alert title="定时任务" url="https://doc.iocoder.cn/job/" />
<doc-alert title="异步任务" url="https://doc.iocoder.cn/async-task/" /> <doc-alert title="异步任务" url="https://doc.iocoder.cn/async-task/" />
<doc-alert title="消息队列" url="https://doc.iocoder.cn/message-queue/" /> <doc-alert title="消息队列" url="https://doc.iocoder.cn/message-queue/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->

View File

@ -1,6 +1,6 @@
<template> <template>
<doc-alert title="Redis 缓存" url="https://doc.iocoder.cn/redis-cache/" /> <!-- <doc-alert title="Redis 缓存" url="https://doc.iocoder.cn/redis-cache/" />
<doc-alert title="本地缓存" url="https://doc.iocoder.cn/local-cache/" /> <doc-alert title="本地缓存" url="https://doc.iocoder.cn/local-cache/" /> -->
<el-scrollbar height="calc(100vh - 88px - 40px - 50px)"> <el-scrollbar height="calc(100vh - 88px - 40px - 50px)">
<el-row> <el-row>
<!-- 基本信息 --> <!-- 基本信息 -->
@ -161,7 +161,7 @@ const usedmemoryEchartChika = reactive<any>({
}) })
// 使 // 使
const commandStatsRefChika = reactive({ const commandStatsRefChika: any = reactive({
title: { title: {
text: '命令统计', text: '命令统计',
left: 'center' left: 'center'

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" /> <!-- <doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" /> -->
<ContentWrap> <ContentWrap>
<IFrame v-if="!loading" v-loading="loading" :src="src" /> <IFrame v-if="!loading" v-loading="loading" :src="src" />

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" /> <!-- <doc-alert title="服务监控" url="https://doc.iocoder.cn/server-monitor/" /> -->
<ContentWrap> <ContentWrap>
<IFrame v-if="!loading" v-loading="loading" :src="src" /> <IFrame v-if="!loading" v-loading="loading" :src="src" />

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="接口文档" url="https://doc.iocoder.cn/api-doc/" /> <!-- <doc-alert title="接口文档" url="https://doc.iocoder.cn/api-doc/" /> -->
<ContentWrap> <ContentWrap>
<IFrame :src="src" /> <IFrame :src="src" />

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="WebSocket 实时通信" url="https://doc.iocoder.cn/websocket/" /> <!-- <doc-alert title="WebSocket 实时通信" url="https://doc.iocoder.cn/websocket/" /> -->
<div class="flex"> <div class="flex">
<!-- 左侧建立连接发送消息 --> <!-- 左侧建立连接发送消息 -->
@ -57,7 +57,7 @@
<li v-for="msg in messageReverseList" :key="msg.time" class="mt-2"> <li v-for="msg in messageReverseList" :key="msg.time" class="mt-2">
<div class="flex items-center"> <div class="flex items-center">
<span class="text-primary mr-2 font-medium">收到消息:</span> <span class="text-primary mr-2 font-medium">收到消息:</span>
<span>{{ formatDate(msg.time) }}</span> <span>{{ formatDate(msg.time as any) }}</span>
</div> </div>
<div> <div>
{{ msg.text }} {{ msg.text }}

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="商城手册(功能开启)" url="https://doc.iocoder.cn/mall/build/" /> <!-- <doc-alert title="商城手册(功能开启)" url="https://doc.iocoder.cn/mall/build/" /> -->
<div class="flex flex-col"> <div class="flex flex-col">
<!-- 数据对照 --> <!-- 数据对照 -->
@ -10,16 +10,16 @@
title="销售额" title="销售额"
prefix="¥" prefix="¥"
:decimals="2" :decimals="2"
:value="fenToYuan(orderComparison?.value?.orderPayPrice || 0)" :value="Number(fenToYuan(orderComparison?.value?.orderPayPrice || 0))"
:reference="fenToYuan(orderComparison?.reference?.orderPayPrice || 0)" :reference="Number(fenToYuan(orderComparison?.reference?.orderPayPrice || 0))"
/> />
</el-col> </el-col>
<el-col :md="6" :sm="12" :xs="24" :loading="loading"> <el-col :md="6" :sm="12" :xs="24" :loading="loading">
<ComparisonCard <ComparisonCard
tag="今日" tag="今日"
title="用户访问量" title="用户访问量"
:value="userComparison?.value?.visitUserCount || 0" :value="Number(userComparison?.value?.visitUserCount) || 0"
:reference="userComparison?.reference?.visitUserCount || 0" :reference="Number(userComparison?.reference?.visitUserCount) || 0"
/> />
</el-col> </el-col>
<el-col :md="6" :sm="12" :xs="24" :loading="loading"> <el-col :md="6" :sm="12" :xs="24" :loading="loading">

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="商城手册(功能开启)" url="https://doc.iocoder.cn/mall/build/" /> <!-- <doc-alert title="商城手册(功能开启)" url="https://doc.iocoder.cn/mall/build/" /> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<ContentWrap> <ContentWrap>
@ -124,7 +124,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref<any[]>([]) // const list = ref<any[]>([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【商品】商品分类" url="https://doc.iocoder.cn/mall/product-category/" /> <!-- <doc-alert title="【商品】商品分类" url="https://doc.iocoder.cn/mall/product-category/" /> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<ContentWrap> <ContentWrap>

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【商品】商品评价" url="https://doc.iocoder.cn/mall/product-comment/" /> <!-- <doc-alert title="【商品】商品评价" url="https://doc.iocoder.cn/mall/product-comment/" /> -->
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
@ -164,12 +164,12 @@ import ReplyForm from './ReplyForm.vue'
defineOptions({ name: 'ProductComment' }) defineOptions({ name: 'ProductComment' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // // const { t } = useI18n() //
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
replyStatus: null, replyStatus: null,

View File

@ -1,5 +1,5 @@
<template> <template>
<doc-alert title="【商品】商品属性" url="https://doc.iocoder.cn/mall/product-property/" /> <!-- <doc-alert title="【商品】商品属性" url="https://doc.iocoder.cn/mall/product-property/" /> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<ContentWrap> <ContentWrap>
@ -114,7 +114,7 @@ const { t } = useI18n() // 国际化
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
const list = ref([]) // const list = ref([]) //
const queryParams = reactive({ const queryParams: any = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,