123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- <template>
- <div class="table-box">
- <LjVxeTable
- ref="VxeTableRef"
- row-key="softbed_id"
- :columns="columns"
- :init-param="initParams"
- :request-api="getData"
- :data-callback="dataCallback"
- :dwname="DwnameEnum.softbedQuote"
- :table-props="tableProps"
- :table-events="tableEvents"
- :auto-load-layout="false"
- :search-btn-size-extent="[]"
- pagination
- >
- <!-- 表格 header 按钮 -->
- <template #tableHeader>
- <LjHeaderMenu :action="action" />
- </template>
- </LjVxeTable>
- </div>
- </template>
- <script setup lang="ts" name="softbedQuote">
- import { ref, reactive } from "vue";
- import { useRouter } from "vue-router";
- import { CommonDynamicSelect } from "@/api/modules/common";
- import { useHooks } from "./hooks/index";
- import LjHeaderMenu from "@/components/LjHeaderMenu/index.vue";
- import { useI18n } from "vue-i18n";
- import { useAuthButtons } from "@/hooks/useAuthButtons";
- import { DwnameEnum } from "@/enums/dwnameEnum";
- import { formatToDateTime, formatToDate } from "@/utils/dateUtil";
- import { cloneDeep } from "lodash-es";
- import { useGlobalStore } from "@/stores/modules/global";
- import { ElMessage, ElMessageBox } from "element-plus";
- import { detailAction } from "@/components/LjDetail/interface";
- import { useUserStore } from "@/stores/modules/user";
- import { getCurrentRecords } from "@/utils/index";
- const { t } = useI18n();
- const router = useRouter();
- const globalStore = useGlobalStore();
- const { columns, orderStatus, VxeTableRef, initParams, onAudit, onCAudit, onDelete, onShowFormula } = useHooks(t);
- const { CheckPower, CheckOption, buttonNew, buttonDefault } = useAuthButtons(t);
- const { userInfo } = useUserStore();
- const showHeadboard = ref(true);
- const showNightstand = ref(true);
- const showBedframe = ref(true);
- const getData = (params: any) => {
- let newParams: any = {};
- params.pageNum && (newParams.pageindex = params.pageNum);
- params.pageSize && (newParams.pagesize = params.pageSize);
- params.orderstr && (newParams.orderstr = params.orderstr);
- delete params.pageNum;
- delete params.pageSize;
- delete params.orderstr;
- let _params = cloneDeep(params);
- newParams.queryParams = _params;
- newParams.dsname = "web_softbed_list";
- return CommonDynamicSelect(newParams, DwnameEnum.softbedQuote);
- };
- const dataCallback = (data: any) => {
- return {
- list: data.datatable,
- tableinfo: data.tableinfo,
- total: data.totalcnt,
- pageNum: data.pageindex,
- pageSize: data.pagesize
- };
- };
- const handleDBlClickTable = ({ row, rowIndex, $rowIndex, column, columnIndex, $columnIndex, $event }: any) => {
- //
- if (globalStore.detailBlank) {
- // 打开新的窗口
- const routeUrl = router.resolve({
- path: `/softbedQuote/detail`,
- query: {
- id: row.softbed_id,
- code: row.softbed_code
- }
- });
- window.open(routeUrl.href, "_blank");
- } else {
- // 打开新的标签页
- router.push(`/softbedQuote/detail?id=${row.softbed_id}&code=${row.softbed_code}`);
- }
- };
- const rowClsNameFunc = (data: any) => {
- const { row, rowIndex, $rowIndex } = data;
- return "";
- };
- const tableProps = {
- height: "auto",
- editConfig: { trigger: "click", mode: "cell" },
- rowClassName: rowClsNameFunc,
- exportConfig: {
- filename: t("menu.softbedQuote") + formatToDate(new Date(), "YYYY-MM-DD HH:mm:ss")
- }
- };
- // 返回绑定的事件
- const tableEvents = {
- "cell-dblclick": handleDBlClickTable
- };
- /**
- * @description 按钮展示
- */
- const action: detailAction[] = [
- buttonDefault({
- label: t("common.redo"),
- clickFunc: item => {
- VxeTableRef.value.refresh();
- }
- }),
- buttonDefault({
- label: t("common.add"),
- power: 133,
- clickFunc: item => {
- router.push(`/softbedQuote/new?id=0`);
- }
- }),
- buttonDefault({
- label: t("common.editText"),
- power: 133,
- clickFunc: item => {
- const { $table, curRecords } = getCurrentRecords(VxeTableRef.value);
- if (!curRecords.length) {
- ElMessage.warning(t("business.tips.mattress.records"));
- return;
- }
- const _cur = curRecords[curRecords.length - 1];
- if (_cur.flag == 1) {
- ElMessage.warning("单据已审核,不能修改");
- return;
- }
- router.push(`/softbedQuote/edit?id=${_cur.softbed_id}&code=${_cur.softbed_code}`);
- }
- }),
- buttonDefault({
- label: t("common.delText"),
- power: 136,
- disabledTextCallBack: (data: any) => {
- if (!CheckPower(136)) {
- return "你没有【报价单-删除】的使用权限";
- }
- return "";
- },
- clickFunc: item => {
- const { curRecords } = getCurrentRecords(VxeTableRef.value);
- if (!curRecords.length) {
- ElMessage.warning(t("business.tips.mattress.records"));
- return;
- }
- let list = curRecords.map((item: any) => {
- return { softbed_id: Number(item.softbed_id) };
- });
- onDelete(list);
- }
- }),
- buttonDefault({
- label: t("common.auditText"),
- power: 134,
- limited: () => {
- return !!orderStatus.value;
- },
- disabledTextCallBack: (data: any) => {
- if (!CheckPower(134)) {
- return `你没有【报价单-${t("common.auditText")}】的使用权限`;
- }
- return "";
- },
- clickFunc: item => {
- const { curRecords } = getCurrentRecords(VxeTableRef.value);
- let list = curRecords.map((item: any) => {
- return { softbed_id: Number(item.softbed_id) };
- });
- onAudit(list, () => {
- VxeTableRef.value.refresh();
- });
- }
- }),
- buttonDefault({
- label: t("common.withdrawAuditText"),
- power: 135,
- limited: () => {
- return !!orderStatus.value;
- },
- disabledTextCallBack: (data: any) => {
- if (!CheckPower(135)) {
- return `你没有【报价单-${t("common.withdrawAuditText")}】的使用权限`;
- }
- return "";
- },
- clickFunc: item => {
- const { curRecords } = getCurrentRecords(VxeTableRef.value);
- let list = curRecords.map((item: any) => {
- return { softbed_id: Number(item.softbed_id) };
- });
- onCAudit(list),
- () => {
- VxeTableRef.value.refresh();
- };
- }
- }),
- buttonDefault({
- label: t("common.copyQuote"),
- power: 75,
- clickFunc: item => {
- const { $table, curRecords } = getCurrentRecords(VxeTableRef.value);
- if (!curRecords.length) {
- ElMessage.warning(t("business.tips.mattress.records"));
- return;
- }
- const _cur = $table.getCurrentRecord() ?? null;
- if (_cur) {
- router.push(`/softbedQuote/copy?id=${_cur.softbed_id}&code=${_cur.softbed_code}`);
- } else {
- const _cur = curRecords[curRecords.length - 1];
- router.push(`/softbedQuote/copy?id=${_cur.softbed_id}&code=${_cur.softbed_code}`);
- }
- }
- }),
- buttonDefault({
- label: t("common.showFormula"),
- disabledTextCallBack: () => {
- return userInfo.usermode == 1 ? "业务员模式不可以查看!" : "";
- },
- clickFunc: item => {}
- }),
- buttonDefault({
- label: t("common.viewHistoricalQuotes"),
- power: 61,
- clickFunc: item => {
- alert("功能维护中!");
- }
- }),
- buttonDefault({
- label: t("common.dataTransmission"),
- power: 61,
- clickFunc: item => {
- alert("功能维护中!");
- }
- })
- ];
- </script>
|