徐滕 hai 1 mes
pai
achega
d17284a61d

+ 4 - 1
src/views/common/reimbursement/ReimbursementComponentTest.vue

@@ -1615,7 +1615,7 @@ export default {
         }
     },
     methods: {
-        initComponent(uploadFlag, tenantFlag, companyName, socialCreditCode, inputForm, isConfirm, status) {
+        initComponent(uploadFlag, tenantFlag, companyName, socialCreditCode, inputForm, isConfirm, status, method) {
             if (this.commonJS.isNotEmpty(tenantFlag)) {
                 this.tenantFlag = tenantFlag
             }
@@ -1631,6 +1631,9 @@ export default {
             if (this.commonJS.isNotEmpty(inputForm)) {
                 this.inputForm = inputForm
             }
+            if (this.commonJS.isNotEmpty(method)) {
+                this.method = method
+            }
 
             if (this.commonJS.isNotEmpty(isConfirm)) {
                 const currentUserId = this.$store.state.user.id

+ 157 - 105
src/views/psiManagement/dishManage/library/DishLibrary.vue

@@ -1,117 +1,139 @@
 <template>
-	<div class="page">
-		<el-form :inline="true" v-if="searchVisible" class="query-form m-b-10" ref="searchForm" :model="searchForm"
-			@keyup.enter.native="refreshList()" @submit.native.prevent>
-			<el-form-item label="菜品名称" prop="dishName">
-				<el-input v-model="searchForm.dishName" placeholder="请输入菜品名称" clearable></el-input>
-			</el-form-item>
-			<el-form-item label="菜品编码" prop="dishCode">
-				<el-input v-model="searchForm.dishCode" placeholder="请输入菜品编码" clearable></el-input>
-			</el-form-item>
-			<el-form-item label="菜品分类" prop="typeId">
-				<SelectTree ref="searchDishTypeTree" :props="{
-					value: 'id',
-					label: 'name',
-					children: 'children'
-				}" url="/psi-management-server/psi/dishType/treeData" :value="searchForm.typeId" :clearable="true"
-					:accordion="true" size="default" style="width: 180px"
-					@getValue="(value) => { searchForm.typeId = value }" />
-			</el-form-item>
-			<el-form-item label="状态" prop="status">
-				<el-select v-model="searchForm.status" placeholder="请选择状态" clearable style="width: 120px">
-					<el-option label="启用" value="0"></el-option>
-					<el-option label="停用" value="1"></el-option>
-				</el-select>
-			</el-form-item>
-			<el-form-item>
-				<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
-				<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
-			</el-form-item>
-		</el-form>
-
-		<div class="jp-table top">
-			<vxe-toolbar :refresh="{ query: refreshList }" custom>
-				<template #buttons>
-					<el-button v-if="hasPermission('psi:dish:add')" type="primary" icon="el-icon-plus"
-						@click="add()">新建</el-button>
-					<el-button v-if="hasPermission('psi:dish:del')" type="danger" icon="el-icon-delete" @click="del()"
-						:disabled="$refs.dishTable && $refs.dishTable.getCheckboxRecords().length === 0"
-						plain>删除</el-button>
-				</template>
-				<template #tools>
-					<vxe-button text type="primary" :title="searchVisible ? '收起检索' : '展开检索'" icon="vxe-icon-search"
-						class="tool-btn" @click="searchVisible = !searchVisible"></vxe-button>
-				</template>
-			</vxe-toolbar>
-			<div style="height: calc(100% - 90px)">
-				<vxe-table border="inner" auto-resize resizable height="auto" :loading="loading" ref="dishTable"
-					show-header-overflow show-overflow highlight-hover-row :menu-config="{}" :data="dataList"
-					:checkbox-config="{}">
-					<vxe-column type="seq" width="60" title="序号"></vxe-column>
-					<vxe-column type="checkbox" width="60"></vxe-column>
-					<vxe-column width="80" align="center" title="菜品图片" field="imageUrl">
-						<template #default="scope">
-							<el-image v-if="scope.row.previewImageUrl" :src="scope.row.previewImageUrl"
-								:preview-src-list="scope.row.previewImageList" fit="cover"
-								style="width: 44px; height: 44px; border-radius: 4px;" hide-on-click-modal
-								append-to-body :z-index="9999"></el-image>
-							<span v-else>暂无图片</span>
-						</template>
-					</vxe-column>
-					<vxe-column min-width="150" align="center" title="菜品编码" field="dishCode"></vxe-column>
-					<vxe-column min-width="180" align="center" title="菜品名称" field="dishName">
-						<template #default="scope">
-							<el-link type="primary" :underline="false" v-if="hasPermission('psi:dish:view')"
-								@click="view(scope.row.id)">{{ scope.row.dishName }}</el-link>
-							<span v-else>{{ scope.row.dishName }}</span>
-						</template>
-					</vxe-column>
-					<vxe-column min-width="150" align="center" title="菜品分类" field="typeName"></vxe-column>
-					<vxe-column width="90" align="center" title="单位" field="unit"></vxe-column>
-					<vxe-column min-width="120" align="center" title="规格" field="spec"></vxe-column>
-					<vxe-column width="110" align="center" title="销售价" field="salePrice"></vxe-column>
-					<vxe-column width="120" align="center" title="参考成本价" field="costPrice"></vxe-column>
-					<vxe-column width="100" align="center" title="状态" field="status">
-						<template #default="scope">
-							<el-tag :type="scope.row.status === '0' ? 'success' : 'info'">
-								{{ scope.row.status === '0' ? '启用' : '停用' }}
-							</el-tag>
-						</template>
-					</vxe-column>
-					<vxe-column min-width="130" align="center" title="创建人" field="createName"></vxe-column>
-					<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
-					<vxe-column title="操作" width="220px" fixed="right" align="center">
-						<template #default="scope">
-							<el-button v-if="hasPermission('psi:dish:edit')" text type="primary" size="small"
-								@click="edit(scope.row.id)">修改</el-button>
-							<el-button v-if="hasPermission('psi:dish:edit')" text type="primary" size="small"
-								@click="changeStatus(scope.row)">{{ scope.row.status === '0' ? '停用' : '启用'
-								}}</el-button>
-							<el-button v-if="hasPermission('psi:dish:del')" text type="primary" size="small"
-								@click="del(scope.row.id)">删除</el-button>
-						</template>
-					</vxe-column>
-				</vxe-table>
-				<vxe-pager background :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
-					:total="tablePage.total" :page-sizes="[10, 20, 100, 1000, { label: '全量数据', value: 1000000 }]"
-					:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
-					@page-change="currentChangeHandle">
-				</vxe-pager>
-			</div>
-		</div>
-		<DishLibraryForm ref="dishLibraryForm" @refreshList="refreshList"></DishLibraryForm>
-	</div>
+	<splitpanes class="default-theme">
+		<pane size="14" min-size="10" max-size="30">
+			<el-container class="jp-container">
+				<el-header class="m-p-13-15">
+					<el-input placeholder="请输入分类名称过滤" clearable v-model="filterText"></el-input>
+				</el-header>
+				<el-main class="nopadding" v-loading="treeLoading">
+					<el-tree class="filter-tree" :data="typeTreeData" :props="{
+						label: 'name',
+						children: 'children'
+					}" node-key="id" default-expand-all highlight-current :expand-on-click-node="false"
+						:filter-node-method="filterNode" @node-click="handleNodeClick" ref="dishTypeTree"></el-tree>
+				</el-main>
+				<el-footer style="height: 51px">
+					<el-button type="default" size="small" icon="el-icon-refresh" @click="refreshTree()"></el-button>
+				</el-footer>
+			</el-container>
+		</pane>
+		<pane size="86">
+			<el-container class="jp-container">
+				<el-header v-if="searchVisible">
+					<div class="left-panel">
+						<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm"
+							@keyup.enter.native="refreshList()" @submit.native.prevent>
+							<el-form-item label="菜品名称" prop="dishName">
+								<el-input v-model="searchForm.dishName" placeholder="请输入菜品名称" clearable></el-input>
+							</el-form-item>
+							<el-form-item label="菜品编码" prop="dishCode">
+								<el-input v-model="searchForm.dishCode" placeholder="请输入菜品编码" clearable></el-input>
+							</el-form-item>
+							<el-form-item label="状态" prop="status">
+								<el-select v-model="searchForm.status" placeholder="请选择状态" clearable style="width: 120px">
+									<el-option label="启用" value="0"></el-option>
+									<el-option label="停用" value="1"></el-option>
+								</el-select>
+							</el-form-item>
+						</el-form>
+					</div>
+					<div class="right-panel">
+						<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+						<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+					</div>
+				</el-header>
+				<el-main class="nopadding page2">
+					<div class="jp-table">
+						<vxe-toolbar :refresh="{ query: refreshList }" custom>
+							<template #buttons>
+								<el-button v-if="hasPermission('psi:dish:add')" type="primary" icon="el-icon-plus"
+									@click="add()">新建</el-button>
+								<el-button v-if="hasPermission('psi:dish:del')" type="danger" icon="el-icon-delete" @click="del()"
+									:disabled="$refs.dishTable && $refs.dishTable.getCheckboxRecords().length === 0"
+									plain>删除</el-button>
+							</template>
+							<template #tools>
+								<vxe-button text type="primary" :title="searchVisible ? '收起检索' : '展开检索'" icon="vxe-icon-search"
+									class="tool-btn" @click="searchVisible = !searchVisible"></vxe-button>
+							</template>
+						</vxe-toolbar>
+						<div class="jp-table-body">
+							<vxe-table border="inner" auto-resize resizable height="auto" :loading="loading" ref="dishTable"
+								show-header-overflow show-overflow highlight-hover-row :menu-config="{}" :data="dataList"
+								:checkbox-config="{}">
+								<vxe-column type="seq" width="60" title="序号"></vxe-column>
+								<vxe-column type="checkbox" width="60"></vxe-column>
+								<vxe-column width="80" align="center" title="菜品图片" field="imageUrl">
+									<template #default="scope">
+										<el-image v-if="scope.row.previewImageUrl" :src="scope.row.previewImageUrl"
+											:preview-src-list="scope.row.previewImageList" fit="cover"
+											style="width: 44px; height: 44px; border-radius: 4px;" hide-on-click-modal
+											append-to-body :z-index="9999"></el-image>
+										<span v-else>暂无图片</span>
+									</template>
+								</vxe-column>
+								<vxe-column min-width="150" align="center" title="菜品编码" field="dishCode"></vxe-column>
+								<vxe-column min-width="180" align="center" title="菜品名称" field="dishName">
+									<template #default="scope">
+										<el-link type="primary" :underline="false" v-if="hasPermission('psi:dish:view')"
+											@click="view(scope.row.id)">{{ scope.row.dishName }}</el-link>
+										<span v-else>{{ scope.row.dishName }}</span>
+									</template>
+								</vxe-column>
+								<vxe-column min-width="150" align="center" title="菜品分类" field="typeName"></vxe-column>
+								<vxe-column width="90" align="center" title="单位" field="unit"></vxe-column>
+								<vxe-column min-width="120" align="center" title="规格" field="spec"></vxe-column>
+								<vxe-column width="110" align="center" title="销售价" field="salePrice"></vxe-column>
+								<vxe-column width="120" align="center" title="参考成本价" field="costPrice"></vxe-column>
+								<vxe-column width="100" align="center" title="状态" field="status">
+									<template #default="scope">
+										<el-tag :type="scope.row.status === '0' ? 'success' : 'info'">
+											{{ scope.row.status === '0' ? '启用' : '停用' }}
+										</el-tag>
+									</template>
+								</vxe-column>
+								<vxe-column min-width="130" align="center" title="创建人" field="createName"></vxe-column>
+								<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
+								<vxe-column title="操作" width="220px" fixed="right" align="center">
+									<template #default="scope">
+										<el-button v-if="hasPermission('psi:dish:edit')" text type="primary" size="small"
+											@click="edit(scope.row.id)">修改</el-button>
+										<el-button v-if="hasPermission('psi:dish:edit')" text type="primary" size="small"
+											@click="changeStatus(scope.row)">{{ scope.row.status === '0' ? '停用' : '启用'
+											}}</el-button>
+										<el-button v-if="hasPermission('psi:dish:del')" text type="primary" size="small"
+											@click="del(scope.row.id)">删除</el-button>
+									</template>
+								</vxe-column>
+							</vxe-table>
+							<vxe-pager background :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
+								:total="tablePage.total" :page-sizes="[10, 20, 100, 1000, { label: '全量数据', value: 1000000 }]"
+								:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+								@page-change="currentChangeHandle">
+							</vxe-pager>
+						</div>
+					</div>
+				</el-main>
+			</el-container>
+		</pane>
+	</splitpanes>
+	<DishLibraryForm ref="dishLibraryForm" @refreshList="refreshList"></DishLibraryForm>
 </template>
 
 <script>
+import { Splitpanes, Pane } from 'splitpanes'
+import 'splitpanes/dist/splitpanes.css'
 import DishLibraryService from '@/api/psi/DishLibraryService'
+import DishTypeService from '@/api/psi/DishTypeService'
 import DishLibraryForm from './DishLibraryForm'
-import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import OSSSerivce from '@/api/sys/OSSService'
 export default {
 	data() {
 		return {
 			searchVisible: true,
+			filterText: '',
+			typeTreeData: [],
+			treeLoading: false,
 			searchForm: {
 				dishName: '',
 				dishCode: '',
@@ -129,22 +151,51 @@ export default {
 		}
 	},
 	dishLibraryService: null,
+	dishTypeService: null,
 	ossService: null,
 	created() {
 		this.dishLibraryService = new DishLibraryService()
+		this.dishTypeService = new DishTypeService()
 		this.ossService = new OSSSerivce()
 	},
 	components: {
-		DishLibraryForm,
-		SelectTree
+		Splitpanes,
+		Pane,
+		DishLibraryForm
 	},
 	mounted() {
+		this.refreshTree()
 		this.refreshList()
 	},
 	activated() {
+		this.refreshTree()
 		this.refreshList()
 	},
+	watch: {
+		filterText(val) {
+			this.$refs.dishTypeTree.filter(val)
+		}
+	},
 	methods: {
+		refreshTree() {
+			this.treeLoading = true
+			this.dishTypeService.treeData().then((data) => {
+				// 前置虚拟根节点,点击时查询全部菜品
+				this.typeTreeData = [{ id: '', name: '全部菜品分类', children: data }]
+				this.treeLoading = false
+			}).catch(() => {
+				this.treeLoading = false
+			})
+		},
+		filterNode(value, data) {
+			if (!value) return true
+			return data.name.indexOf(value) !== -1
+		},
+		handleNodeClick(data) {
+			this.searchForm.typeId = data.id || ''
+			this.tablePage.currentPage = 1
+			this.refreshList()
+		},
 		add() {
 			this.$refs.dishLibraryForm.init('add', '')
 		},
@@ -239,6 +290,7 @@ export default {
 		resetSearch() {
 			this.$refs.searchForm.resetFields()
 			this.searchForm.typeId = ''
+			this.$refs.dishTypeTree.setCurrentKey(null)
 			this.tablePage.currentPage = 1
 			this.refreshList()
 		}

+ 198 - 182
src/views/psiManagement/dishManage/menu/DishMenu.vue

@@ -1,131 +1,141 @@
 <template>
-	<div class="page">
-		<el-tabs type="card" class="my-tabs" v-model="activeName" @tab-change="handleTabClick">
-			<el-tab-pane label="当前菜单" name="current">
-				<el-form :inline="true" v-if="searchVisible" class="query-form m-b-10" ref="searchForm"
-					:model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
-					<el-form-item label="菜品名称" prop="dishName">
-						<el-input v-model="searchForm.dishName" placeholder="请输入菜品名称" clearable></el-input>
-					</el-form-item>
-					<el-form-item label="菜品分类" prop="typeId">
-						<SelectTree ref="searchDishTypeTree" :props="{
-							value: 'id',
-							label: 'name',
-							children: 'children'
-						}" url="/psi-management-server/psi/dishType/treeData" :value="searchForm.typeId" :clearable="true"
-							:accordion="true" size="default" style="width: 180px"
-							@getValue="(value) => { searchForm.typeId = value }" />
-					</el-form-item>
-					<el-form-item label="状态" prop="status">
-						<el-select v-model="searchForm.status" placeholder="请选择状态" clearable style="width: 120px">
-							<el-option label="启用" value="0"></el-option>
-							<el-option label="停用" value="1"></el-option>
-						</el-select>
-					</el-form-item>
-					<el-form-item>
-						<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
-						<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
-					</el-form-item>
-				</el-form>
+	<splitpanes class="default-theme">
+		<pane size="14" min-size="10" max-size="30">
+			<el-container class="jp-container">
+				<el-header class="m-p-13-15">
+					<el-input placeholder="请输入分类名称过滤" clearable v-model="filterText"></el-input>
+				</el-header>
+				<el-main class="nopadding" v-loading="treeLoading">
+					<el-tree class="filter-tree" :data="typeTreeData" :props="{
+						label: 'name',
+						children: 'children'
+					}" node-key="id" default-expand-all highlight-current :expand-on-click-node="false"
+						:filter-node-method="filterNode" @node-click="handleNodeClick" ref="dishTypeTree"></el-tree>
+				</el-main>
+				<el-footer style="height: 51px">
+					<el-button type="default" size="small" icon="el-icon-refresh" @click="refreshTree()"></el-button>
+				</el-footer>
+			</el-container>
+		</pane>
+		<pane size="86">
+			<el-tabs type="card" class="my-tabs" v-model="activeName" @tab-change="handleTabClick">
+				<el-tab-pane label="当前菜单" name="current" class="current-pane">
+					<el-form :inline="true" v-if="searchVisible" class="query-form m-b-10" ref="searchForm"
+						:model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+						<el-form-item label="菜品名称" prop="dishName">
+							<el-input v-model="searchForm.dishName" placeholder="请输入菜品名称" clearable></el-input>
+						</el-form-item>
+						<el-form-item label="状态" prop="status">
+							<el-select v-model="searchForm.status" placeholder="请选择状态" clearable style="width: 120px">
+								<el-option label="启用" value="0"></el-option>
+								<el-option label="停用" value="1"></el-option>
+							</el-select>
+						</el-form-item>
+						<el-form-item>
+							<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+							<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+						</el-form-item>
+					</el-form>
 
-				<div class="jp-table top">
-					<vxe-toolbar :refresh="{ query: refreshList }" custom>
-						<template #buttons>
+					<div class="jp-table top">
+						<vxe-toolbar :refresh="{ query: refreshList }" custom>
+							<template #buttons>
 
-							<el-button type="primary" icon="el-icon-plus" v-if="hasPermission('psi:menu:add')"
-								@click="openDishDialog()">添加菜品</el-button>
-							<el-button type="primary" icon="el-icon-refresh" v-if="hasPermission('psi:menu:edit')"
-								@click="updateMenu()">更新</el-button>
-							<el-button type="danger" icon="el-icon-delete" plain @click="del()"
-								:disabled="$refs.dishTable && $refs.dishTable.getCheckboxRecords().length === 0"
-								v-if="hasPermission('psi:menu:del')">删除</el-button>
-						</template>
-						<template #tools>
-							<vxe-button text type="primary" :title="searchVisible ? '收起检索' : '展开检索'"
-								icon="vxe-icon-search" class="tool-btn"
-								@click="searchVisible = !searchVisible"></vxe-button>
-						</template>
-					</vxe-toolbar>
-					<div style="height: calc(100% - 50px)">
-						<vxe-table border="inner" auto-resize resizable height="auto" :loading="loading" ref="dishTable"
-							show-header-overflow show-overflow highlight-hover-row :menu-config="{}" :data="dataList"
-							:tree-config="{ transform: true, rowField: 'treeId', parentField: 'treeParentId', expandAll: true }"
-							:checkbox-config="{ checkMethod: ({ row }) => !row.isCategory }">
-							<vxe-column type="seq" width="60" title="序号"></vxe-column>
-							<vxe-column type="checkbox" width="60"></vxe-column>
-							<vxe-column min-width="220" align="left" title="菜品名称" field="dishName"
-								tree-node></vxe-column>
-							<vxe-column width="80" align="center" title="菜品图片" field="imageUrl">
-								<template #default="scope">
-									<el-image v-if="!scope.row.isCategory && scope.row.previewImageUrl"
-										:src="scope.row.previewImageUrl" :preview-src-list="scope.row.previewImageList"
-										fit="cover" style="width: 44px; height: 44px; border-radius: 4px;"
-										hide-on-click-modal append-to-body :z-index="9999"></el-image>
-									<span v-else-if="!scope.row.isCategory">暂无图片</span>
-								</template>
-							</vxe-column>
-							<vxe-column min-width="150" align="center" title="菜品编码" field="dishCode"></vxe-column>
-							<vxe-column min-width="150" align="center" title="菜品分类" field="typeName"></vxe-column>
-							<vxe-column width="90" align="center" title="单位" field="unit"></vxe-column>
-							<vxe-column width="120" align="center" title="菜品库价格" field="librarySalePrice"></vxe-column>
-							<vxe-column width="120" align="center" title="菜单价格" field="salePrice"></vxe-column>
-							<vxe-column width="100" align="center" title="状态" field="status">
-								<template #default="scope">
-									<el-tag v-if="!scope.row.isCategory"
-										:type="scope.row.status === '0' ? 'success' : 'info'">
-										{{ scope.row.status === '0' ? '启用' : '停用' }}
-									</el-tag>
-								</template>
-							</vxe-column>
-							<vxe-column min-width="130" align="center" title="创建人" field="createName"></vxe-column>
-							<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
-							<vxe-column title="操作" width="180px" fixed="right" align="center">
-								<template #default="scope">
-									<el-button text type="primary" size="small"
-										v-if="!scope.row.isCategory && hasPermission('psi:menu:edit')"
-										@click="openPriceDialog(scope.row)">修改价格</el-button>
-									<el-button text type="primary" size="small" @click="del(scope.row.id)"
-										v-if="!scope.row.isCategory && hasPermission('psi:menu:del')">删除</el-button>
-								</template>
-							</vxe-column>
-						</vxe-table>
-					</div>
-				</div>
-			</el-tab-pane>
-			<el-tab-pane label="历史菜单" name="history">
-				<div class="jp-table history-table">
-					<vxe-toolbar :refresh="{ query: refreshHistoryList }" custom></vxe-toolbar>
-					<vxe-table border="inner" auto-resize resizable height="auto" :loading="historyLoading"
-						show-header-overflow show-overflow highlight-hover-row :data="historyList">
-						<vxe-column type="seq" width="60" title="序号"></vxe-column>
-						<vxe-column min-width="180" align="center" title="更新时间" field="historyTime"></vxe-column>
-						<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
-						<vxe-column min-width="130" align="center" title="操作人" field="createName"></vxe-column>
-						<vxe-column width="120" align="center" title="菜品数量" field="dishCount"></vxe-column>
-						<vxe-column title="操作" width="120px" fixed="right" align="center">
-							<template #default="scope">
-								<el-button text type="primary" size="small"
-									@click="openHistoryDetail(scope.row)">详情</el-button>
+								<el-button type="primary" icon="el-icon-plus" v-if="hasPermission('psi:menu:add')"
+									@click="openDishDialog()">添加菜品</el-button>
+								<el-button type="primary" icon="el-icon-refresh" v-if="hasPermission('psi:menu:edit')"
+									@click="updateMenu()">更新</el-button>
+								<el-button type="danger" icon="el-icon-delete" plain @click="del()"
+									:disabled="$refs.dishTable && $refs.dishTable.getCheckboxRecords().length === 0"
+									v-if="hasPermission('psi:menu:del')">删除</el-button>
+							</template>
+							<template #tools>
+								<vxe-button text type="primary" :title="searchVisible ? '收起检索' : '展开检索'"
+									icon="vxe-icon-search" class="tool-btn"
+									@click="searchVisible = !searchVisible"></vxe-button>
 							</template>
-						</vxe-column>
-					</vxe-table>
-					<vxe-pager background :current-page="historyPage.currentPage" :page-size="historyPage.pageSize"
-						:total="historyPage.total" :page-sizes="[10, 20, 100, 1000]"
-						:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
-						@page-change="historyPageChange">
-					</vxe-pager>
-				</div>
-			</el-tab-pane>
-		</el-tabs>
+						</vxe-toolbar>
+						<div style="height: calc(100% - 50px)">
+							<vxe-table border="inner" auto-resize resizable height="auto" :loading="loading"
+								ref="dishTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}"
+								:data="dataList" :checkbox-config="{}">
+								<vxe-column type="seq" width="60" title="序号"></vxe-column>
+								<vxe-column type="checkbox" width="60"></vxe-column>
+								<vxe-column min-width="220" align="left" title="菜品名称" field="dishName"></vxe-column>
+								<vxe-column width="80" align="center" title="菜品图片" field="imageUrl">
+									<template #default="scope">
+										<el-image v-if="scope.row.previewImageUrl"
+											:src="scope.row.previewImageUrl" :preview-src-list="scope.row.previewImageList"
+											fit="cover" style="width: 44px; height: 44px; border-radius: 4px;"
+											hide-on-click-modal append-to-body :z-index="9999"></el-image>
+										<span v-else>暂无图片</span>
+									</template>
+								</vxe-column>
+								<vxe-column min-width="150" align="center" title="菜品编码" field="dishCode"></vxe-column>
+								<vxe-column min-width="150" align="center" title="菜品分类" field="typeName"></vxe-column>
+								<vxe-column width="90" align="center" title="单位" field="unit"></vxe-column>
+								<vxe-column width="120" align="center" title="菜品库价格" field="librarySalePrice"></vxe-column>
+								<vxe-column width="120" align="center" title="菜单价格" field="salePrice"></vxe-column>
+								<vxe-column width="100" align="center" title="状态" field="status">
+									<template #default="scope">
+										<el-tag :type="scope.row.status === '0' ? 'success' : 'info'">
+											{{ scope.row.status === '0' ? '启用' : '停用' }}
+										</el-tag>
+									</template>
+								</vxe-column>
+								<vxe-column min-width="130" align="center" title="创建人" field="createName"></vxe-column>
+								<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
+								<vxe-column title="操作" width="180px" fixed="right" align="center">
+									<template #default="scope">
+										<el-button text type="primary" size="small"
+											v-if="hasPermission('psi:menu:edit')"
+											@click="openPriceDialog(scope.row)">修改价格</el-button>
+										<el-button text type="primary" size="small" @click="del(scope.row.id)"
+											v-if="hasPermission('psi:menu:del')">删除</el-button>
+									</template>
+								</vxe-column>
+							</vxe-table>
+						</div>
+					</div>
+				</el-tab-pane>
+				<el-tab-pane label="历史菜单" name="history" class="history-pane">
+					<div class="jp-table history-table">
+						<vxe-toolbar :refresh="{ query: refreshHistoryList }" custom></vxe-toolbar>
+						<div style="height: calc(100% - 90px)">
+							<vxe-table border="inner" auto-resize resizable height="auto" :loading="historyLoading"
+								show-header-overflow show-overflow highlight-hover-row :data="historyList">
+								<vxe-column type="seq" width="60" title="序号"></vxe-column>
+								<vxe-column min-width="180" align="center" title="更新时间" field="historyTime"></vxe-column>
+								<vxe-column min-width="180" align="center" title="创建时间" field="createTime"></vxe-column>
+								<vxe-column min-width="130" align="center" title="操作人" field="createName"></vxe-column>
+								<vxe-column width="120" align="center" title="菜品数量" field="dishCount"></vxe-column>
+								<vxe-column title="操作" width="120px" fixed="right" align="center">
+									<template #default="scope">
+										<el-button text type="primary" size="small"
+											@click="openHistoryDetail(scope.row)">详情</el-button>
+									</template>
+								</vxe-column>
+							</vxe-table>
+							<vxe-pager background :current-page="historyPage.currentPage" :page-size="historyPage.pageSize"
+								:total="historyPage.total" :page-sizes="[10, 20, 100, 1000]"
+								:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+								@page-change="historyPageChange">
+							</vxe-pager>
+						</div>
+					</div>
+				</el-tab-pane>
+			</el-tabs>
+		</pane>
+	</splitpanes>
 
-		<DishMenuDishDialog ref="dishMenuDishDialog" @refreshList="refreshList"></DishMenuDishDialog>
-		<DishMenuPriceDialog ref="dishMenuPriceDialog" @refreshList="refreshList"></DishMenuPriceDialog>
-		<DishMenuHistoryDetailDialog ref="dishMenuHistoryDetailDialog"></DishMenuHistoryDetailDialog>
-	</div>
+	<DishMenuDishDialog ref="dishMenuDishDialog" @refreshList="refreshList"></DishMenuDishDialog>
+	<DishMenuPriceDialog ref="dishMenuPriceDialog" @refreshList="refreshList"></DishMenuPriceDialog>
+	<DishMenuHistoryDetailDialog ref="dishMenuHistoryDetailDialog"></DishMenuHistoryDetailDialog>
 </template>
 
 <script>
-import SelectTree from '@/components/treeSelect/treeSelect.vue'
+import { Splitpanes, Pane } from 'splitpanes'
+import 'splitpanes/dist/splitpanes.css'
 import OSSSerivce from '@/api/sys/OSSService'
 import DishMenuService from '@/api/psi/DishMenuService'
 import DishTypeService from '@/api/psi/DishTypeService'
@@ -138,6 +148,9 @@ export default {
 		return {
 			activeName: 'current',
 			searchVisible: true,
+			filterText: '',
+			typeTreeData: [],
+			treeLoading: false,
 			searchForm: {
 				dishName: '',
 				typeId: '',
@@ -169,18 +182,46 @@ export default {
 		this.ossService = new OSSSerivce()
 	},
 	components: {
-		SelectTree,
+		Splitpanes,
+		Pane,
 		DishMenuDishDialog,
 		DishMenuPriceDialog,
 		DishMenuHistoryDetailDialog
 	},
 	mounted() {
+		this.refreshTree()
 		this.refreshList()
 	},
 	activated() {
+		this.refreshTree()
 		this.refreshList()
 	},
+	watch: {
+		filterText(val) {
+			this.$refs.dishTypeTree.filter(val)
+		}
+	},
 	methods: {
+		refreshTree() {
+			this.treeLoading = true
+			this.dishTypeService.treeData().then((data) => {
+				// 前置虚拟根节点,点击时查询全部菜单菜品
+				this.typeTreeData = [{ id: '', name: '全部菜品分类', children: data }]
+				this.treeLoading = false
+			}).catch(() => {
+				this.treeLoading = false
+			})
+		},
+		filterNode(value, data) {
+			if (!value) return true
+			return data.name.indexOf(value) !== -1
+		},
+		handleNodeClick(data) {
+			this.searchForm.typeId = data.id || ''
+			if (this.activeName === 'current') {
+				this.refreshList()
+			}
+		},
 		handleTabClick() {
 			if (this.activeName === 'history') {
 				this.refreshHistoryList()
@@ -190,70 +231,19 @@ export default {
 		},
 		refreshList() {
 			this.loading = true
-			Promise.all([
-				this.dishTypeService.list({}),
-				this.dishMenuService.list({
-					current: 1,
-					size: 1000000,
-					orders: this.tablePage.orders,
-					...this.searchForm
-				})
-			]).then(([typeList, data]) => {
-				const dishList = data && data.records ? data.records : []
-				this.dataList = this.buildCurrentMenuTree(typeList || [], dishList)
-				this.loadImagePreview(this.dataList.filter(item => !item.isCategory))
+			this.dishMenuService.list({
+				current: 1,
+				size: 1000000,
+				orders: this.tablePage.orders,
+				...this.searchForm
+			}).then((data) => {
+				this.dataList = data && data.records ? data.records : []
+				this.loadImagePreview(this.dataList)
 				this.loading = false
-				this.$nextTick(() => {
-					if (this.$refs.dishTable) {
-						this.$refs.dishTable.setAllTreeExpand(true)
-					}
-				})
 			}).catch(() => {
 				this.loading = false
 			})
 		},
-		buildCurrentMenuTree(typeList, dishList) {
-			const typeMap = new Map(typeList.map(item => [item.id, item]))
-			const usedTypeIdSet = new Set()
-			dishList.forEach(item => {
-				let typeId = item.typeId
-				while (typeId && typeId !== '0' && typeMap.has(typeId) && !usedTypeIdSet.has(typeId)) {
-					usedTypeIdSet.add(typeId)
-					typeId = typeMap.get(typeId).parentId
-				}
-			})
-
-			const rows = typeList.filter(item => usedTypeIdSet.has(item.id)).map(item => {
-				return {
-					treeId: `type:${item.id}`,
-					treeParentId: usedTypeIdSet.has(item.parentId) ? `type:${item.parentId}` : null,
-					isCategory: true,
-					dishName: item.name
-				}
-			})
-
-			const hasUncategorized = dishList.some(item => !item.typeId || !typeMap.has(item.typeId))
-			if (hasUncategorized) {
-				rows.push({
-					treeId: 'type:uncategorized',
-					treeParentId: null,
-					isCategory: true,
-					dishName: '未分类'
-				})
-			}
-
-			dishList.forEach(item => {
-				rows.push({
-					...item,
-					treeId: `dish:${item.id}`,
-					treeParentId: item.typeId && typeMap.has(item.typeId)
-						? `type:${item.typeId}`
-						: 'type:uncategorized',
-					isCategory: false
-				})
-			})
-			return rows
-		},
 		refreshHistoryList() {
 			this.historyLoading = true
 			this.dishMenuService.historyList({
@@ -335,6 +325,7 @@ export default {
 		resetSearch() {
 			this.$refs.searchForm.resetFields()
 			this.searchForm.typeId = ''
+			this.$refs.dishTypeTree.setCurrentKey(null)
 			this.tablePage.currentPage = 1
 			this.refreshList()
 		}
@@ -356,10 +347,35 @@ export default {
 
 .my-tabs :deep(.el-tab-pane) {
 	height: 100%;
-	overflow: auto;
+}
+
+.current-pane {
+	display: flex;
+	flex-direction: column;
+	overflow: hidden;
+}
+
+.current-pane .query-form {
+	flex: none;
+	margin-bottom: 6px !important;
+}
+
+.current-pane .jp-table {
+	flex: 1;
+	min-height: 0;
+	overflow: hidden;
+	background-color: #fff;
+	border-radius: 4px;
+}
+
+.history-pane {
+	overflow: hidden;
 }
 
 .history-table {
-	height: calc(100% - 4px);
+	height: 100%;
+	overflow: hidden;
+	background-color: #fff;
+	border-radius: 4px;
 }
 </style>

+ 46 - 1
src/views/psiManagement/dishManage/order/DishOrderAdd.vue

@@ -40,7 +40,12 @@
 									<div class="dish-desc">{{ item.spec || item.taste || item.remarks || '暂无说明' }}</div>
 									<div class="dish-bottom">
 										<span class="dish-price">¥{{ formatMoney(item.salePrice) }}</span>
-										<el-button type="primary" size="small" plain @click="addDish(item)">点菜</el-button>
+										<div v-if="orderedRow(item)" class="card-stepper">
+											<span class="step-btn" @click="reduceDish(orderedRow(item))">-</span>
+											<span class="step-qty">{{ orderedRow(item).quantity }}</span>
+											<span class="step-btn plus" @click="increaseOrderedDish(orderedRow(item))">+</span>
+										</div>
+										<el-button v-else type="primary" size="small" plain @click="addDish(item)">点菜</el-button>
 									</div>
 								</div>
 							</div>
@@ -254,6 +259,9 @@ export default {
 			}
 			item.quantity -= 1
 		},
+		orderedRow(dish) {
+			return this.orderedList.find(item => item.dishId === dish.id) || null
+		},
 		confirmSubmitOrder() {
 			if (this.orderedList.length === 0) {
 				this.$message.warning('请先选择菜品')
@@ -489,6 +497,43 @@ export default {
 	line-height: 26px;
 }
 
+.card-stepper {
+	display: flex;
+	align-items: center;
+	gap: 6px;
+}
+
+.step-btn {
+	width: 26px;
+	height: 26px;
+	border-radius: 6px;
+	font-size: 16px;
+	font-weight: 700;
+	line-height: 26px;
+	text-align: center;
+	color: #409eff;
+	background: #ecf5ff;
+	cursor: pointer;
+	user-select: none;
+}
+
+.step-btn:hover {
+	opacity: 0.85;
+}
+
+.step-btn.plus {
+	color: #fff;
+	background: #409eff;
+}
+
+.step-qty {
+	min-width: 22px;
+	text-align: center;
+	font-size: 14px;
+	font-weight: 700;
+	color: #303133;
+}
+
 .dish-empty {
 	height: 100%;
 	display: flex;

+ 46 - 1
src/views/psiManagement/dishManage/order/DishOrderDetail.vue

@@ -48,7 +48,12 @@
 									<div class="dish-desc">{{ item.spec || item.taste || item.remarks || '暂无说明' }}</div>
 									<div class="dish-bottom">
 										<span class="dish-price">¥{{ formatMoney(item.salePrice) }}</span>
-										<el-button type="primary" size="small" plain
+										<div v-if="orderedRow(item)" class="card-stepper">
+											<span class="step-btn" @click="reduceDish(orderedRow(item))">-</span>
+											<span class="step-qty">{{ orderedRow(item).quantity }}</span>
+											<span class="step-btn plus" @click="increaseOrderedDish(orderedRow(item))">+</span>
+										</div>
+										<el-button v-else type="primary" size="small" plain
 											@click="addDish(item)">点菜</el-button>
 									</div>
 								</div>
@@ -357,6 +362,9 @@ export default {
 				})
 			}
 		},
+		orderedRow(dish) {
+			return this.orderedList.find(item => item.dishId === dish.id) || null
+		},
 		openSettleDialog() {
 			const changedList = this.changedDetailList
 			if (!this.hasCurrentOrder && changedList.length === 0) {
@@ -747,6 +755,43 @@ export default {
 	line-height: 26px;
 }
 
+.card-stepper {
+	display: flex;
+	align-items: center;
+	gap: 6px;
+}
+
+.step-btn {
+	width: 26px;
+	height: 26px;
+	border-radius: 6px;
+	font-size: 16px;
+	font-weight: 700;
+	line-height: 26px;
+	text-align: center;
+	color: #409eff;
+	background: #ecf5ff;
+	cursor: pointer;
+	user-select: none;
+}
+
+.step-btn:hover {
+	opacity: 0.85;
+}
+
+.step-btn.plus {
+	color: #fff;
+	background: #409eff;
+}
+
+.step-qty {
+	min-width: 22px;
+	text-align: center;
+	font-size: 14px;
+	font-weight: 700;
+	color: #303133;
+}
+
 .dish-empty {
 	height: 100%;
 	display: flex;

+ 85 - 7
src/views/psiManagement/dishManage/order/DishOrderReturnDialog.vue

@@ -15,17 +15,23 @@
 			<div class="return-dish-head">
 				<span>序号</span>
 				<span>菜品名</span>
-				<span>现有数量</span>
-				<span>退菜数量</span>
+				<span style="text-align: center;">剩余数量</span>
+				<span style="text-align: center;">退菜数</span>
 			</div>
 			<div v-if="returnDishList.length === 0" class="return-dish-empty">暂无可退菜品</div>
 			<div v-else class="return-dish-body">
-				<div v-for="(item, index) in returnDishList" :key="item.dishId" class="return-dish-item">
+				<div v-for="(item, index) in returnDishList" :key="item.dishId" class="return-dish-item"
+					:class="{ 'return-dish-item-active': item.returnQuantity > 0 }">
 					<span>{{ index + 1 }}</span>
 					<span class="return-dish-name">{{ item.dishName }}</span>
-					<span>{{ item.quantity }}</span>
-					<el-input-number v-model="item.returnQuantity" :min="0" :max="item.quantity" :precision="0"
-						:step="1" style="width: 120px"></el-input-number>
+					<div class="return-stepper">
+						<span class="step-btn" :class="{ disabled: item.returnQuantity >= item.quantity }"
+							@click="reduceReturnDish(item)">-</span>
+						<span class="step-qty">{{ item.quantity - item.returnQuantity }}</span>
+						<span class="step-btn plus" :class="{ disabled: item.returnQuantity <= 0 }"
+							@click="increaseReturnDish(item)">+</span>
+					</div>
+					<span class="return-count" :class="{ on: item.returnQuantity > 0 }">{{ item.returnQuantity }}</span>
 				</div>
 			</div>
 		</div>
@@ -103,6 +109,18 @@ export default {
 		updateVisible(value) {
 			this.$emit('update:modelValue', value)
 		},
+		reduceReturnDish(item) {
+			if (item.returnQuantity >= item.quantity) {
+				return
+			}
+			item.returnQuantity += 1
+		},
+		increaseReturnDish(item) {
+			if (item.returnQuantity <= 0) {
+				return
+			}
+			item.returnQuantity -= 1
+		},
 		confirmReturnDish() {
 			const detailList = this.returnDishList
 				.filter(item => Number(item.returnQuantity || 0) > 0)
@@ -167,7 +185,7 @@ export default {
 .return-dish-head,
 .return-dish-item {
 	display: grid;
-	grid-template-columns: 70px minmax(0, 1fr) 100px 140px;
+	grid-template-columns: 70px minmax(0, 1fr) 150px 90px;
 	gap: 8px;
 	align-items: center;
 }
@@ -200,6 +218,66 @@ export default {
 	text-overflow: ellipsis;
 }
 
+.return-dish-item-active {
+	background: rgba(64, 158, 255, 0.08);
+}
+
+.return-stepper {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	gap: 6px;
+}
+
+.step-btn {
+	width: 26px;
+	height: 26px;
+	border-radius: 6px;
+	font-size: 16px;
+	font-weight: 700;
+	line-height: 26px;
+	text-align: center;
+	color: #409eff;
+	background: #ecf5ff;
+	cursor: pointer;
+	user-select: none;
+}
+
+.step-btn:hover {
+	opacity: 0.85;
+}
+
+.step-btn.plus {
+	color: #fff;
+	background: #409eff;
+}
+
+.step-btn.disabled,
+.step-btn.disabled:hover {
+	opacity: 0.4;
+	cursor: not-allowed;
+}
+
+.step-qty {
+	min-width: 22px;
+	text-align: center;
+	font-size: 14px;
+	font-weight: 700;
+	color: #303133;
+}
+
+.return-count {
+	text-align: center;
+	font-size: 14px;
+	font-weight: 600;
+	color: #909399;
+}
+
+.return-count.on {
+	color: #f56c6c;
+	font-weight: 700;
+}
+
 .return-dish-empty {
 	height: 120px;
 	display: flex;

+ 1 - 91
src/views/zs/reimbursement/info/NewReimbursementForm.vue

@@ -86,96 +86,6 @@
       </ReimbursementComponent>
       <!-- 报销单图片预览 -->
       <ReimbursementImage ref="reimbursementImage"></ReimbursementImage>
-      <!--		<div v-if="inputForm.reimbursementType === '1'">-->
-      <!--			<el-divider content-position="left">-->
-      <!--				数电发票信息-->
-      <!--				&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-      <!--					新增-->
-      <!--				</el-button>&ndash;&gt;-->
-      <!--			</el-divider>-->
-      <!--			<el-row  :gutter="15" >-->
-      <!--				<el-col :span="24">-->
-      <!--					<vxe-table-->
-      <!--						border-->
-      <!--						show-footer-->
-      <!--						show-overflow-->
-      <!--						ref="invoiceReimbursementTable"-->
-      <!--						class="vxe-table-element"-->
-      <!--						:data="inputForm.invoiceReimbursements"-->
-      <!--						:footer-method="footerMethod1111"-->
-      <!--						style="margin-left: 5em"-->
-      <!--						:key="invoiceReimbursementKey"-->
-      <!--						highlight-current-row-->
-      <!--						:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-      <!--						:edit-rules="invoiceReimbursementRules"-->
-      <!--					>-->
-      <!--						<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-      <!--									<vxe-option-->
-      <!--										v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-      <!--										:key="item.value"-->
-      <!--										:label="item.label"-->
-      <!--										:value="item.value">-->
-      <!--									</vxe-option>-->
-      <!--								</vxe-select>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-      <!--							<template #default="scope">-->
-      <!--								<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>&ndash;&gt;-->
-      <!--					</vxe-table>-->
-      <!--				</el-col>-->
-      <!--			</el-row>-->
-      <!--		</div>-->
-      <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
       <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm4" @getProgram="getProgram4"></CwProgramPageForm>
@@ -473,7 +383,7 @@ export default {
     getUpload() {
     },
     initReimbursementComponent() {
-      this.$refs.reimbursementComponent.initComponent("reimbursement", "zs", zsInfo.name, zsInfo.code, this.inputForm, this.isConfirm, this.status)
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "zs", zsInfo.name, zsInfo.code, this.inputForm, this.isConfirm, this.status, this.method)
     },
     init(method, id) {
       this.loading = true