Parcourir la source

add:线下订单

Tang il y a 3 ans
Parent
commit
2ff5477883

+ 6 - 2
src/api/api.js

@@ -89,8 +89,10 @@ import adv from '../newApi/adv'//广告位管理
 import advList from '../newApi/advList'//广告位发布储存管理
 import answer from '../newApi/answer'//答疑管理
 import rolesBusin from '../newApi/rolesBusin'//角色和业务层次关联
-import reviewer from '../newApi/reviewer'//角色和业务层次关联
-import invoice from '../newApi/invoice'//角色和业务层次关联
+import reviewer from '../newApi/reviewer'//学时审核用户
+import invoice from '../newApi/invoice'//订单发票
+import orderBusiness from '../newApi/orderBusiness'//录单配置
+import orderConfigBusiness from '../newApi/orderConfigBusiness'//配置详情
 
 
 
@@ -164,6 +166,8 @@ export default {
     ...rolesBusin,
     ...reviewer,
     ...invoice,
+    ...orderBusiness,
+    ...orderConfigBusiness,
 
     // ...login,
     // ...profession,

+ 34 - 0
src/newApi/orderBusiness.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增录单配置
+    apporderbusinessconfig(data) {
+        return request({
+            url: '/order/business/config',
+            method: 'post',
+            data
+        })
+    },
+    //修改录单配置
+    editorderbusinessconfig(data) {
+        return request({
+            url: '/order/business/config/edit',
+            method: 'post',
+            data
+        })
+    },
+    //查询录单配置列表
+    inquireorderbusinessconfigList(data) {
+        return request({
+            url: '/order/business/config/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取录单配置详细信息
+    obtainorderbusinessconfig(data) {
+        return request({
+            url: `/order/business/config/` + data,
+            method: 'get',
+        })
+    },
+}

+ 34 - 0
src/newApi/orderConfigBusiness.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增订单配置商品
+    apporderconfiggoods(data) {
+        return request({
+            url: '/order/config/goods',
+            method: 'post',
+            data
+        })
+    },
+    //修改订单配置商品
+    editorderconfiggoods(data) {
+        return request({
+            url: '/order/config/goods/edit',
+            method: 'post',
+            data
+        })
+    },
+    //查询订单配置商品列表
+    inquireorderconfiggoodsList(data) {
+        return request({
+            url: '/order/config/goods/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取录单配置详细信息
+    obtainorderconfiggoods(data) {
+        return request({
+            url: `/order/config/goods/` + data,
+            method: 'get',
+        })
+    },
+}

+ 2 - 2
src/store/modules/tagsView.js

@@ -2,9 +2,9 @@ import { MessageBox } from 'element-ui';
 const state = {
   visitedViews: [],
   cachedViews: [],
-  alertPage: ["CommodityManageMentAdd", "CommodityManageMentEdit", "FestivalAdd", "FestivalEdit", "ChapterAdd", "ChapterEdit","ModuleManagementAdd","ModuleManagementEdit","BasicInfoEdit","BasicInfoAdd","ChapterContent","EditCourse","OrderDetail","OrderPrice","AddOrder","EditPaper","AddPaper","TopicAddPaper","ChapterVolumeManagementEdit","ChapterVolumeManagementAdd","VolumeManagementAdd","VolumeManagementEdit","HandoutListEdit","HandoutListAdd","StudentXQ","AddClass","ManageClass","NotificationInfo","NotificationListAdd","NotificationEdit","BulkImportPlan"],
+  alertPage: ["CommodityManageMentAdd", "CommodityManageMentEdit", "FestivalAdd", "FestivalEdit", "ChapterAdd", "ChapterEdit", "ModuleManagementAdd", "ModuleManagementEdit", "BasicInfoEdit", "BasicInfoAdd", "ChapterContent", "EditCourse", "OrderDetail", "OrderPrice", "AddOrder", "EditPaper", "AddPaper", "TopicAddPaper", "ChapterVolumeManagementEdit", "ChapterVolumeManagementAdd", "VolumeManagementAdd", "VolumeManagementEdit", "HandoutListEdit", "HandoutListAdd", "StudentXQ", "AddClass", "ManageClass", "NotificationInfo", "NotificationListAdd", "NotificationEdit", "BulkImportPlan", "MatchInfoData"],
 }
- 
+
 const mutations = {
   ADD_VISITED_VIEW: (state, view) => {
     if (state.visitedViews.some(v => v.path === view.path)) return

+ 1 - 1
src/utils/request.js

@@ -15,7 +15,7 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 /**
  * @remard 测试地址
  */
-export const baseURL = 'http://192.168.1.222:5030/'
+export const baseURL = 'http://192.168.1.24:5030/'
 export const BASE_IMG_URL = 'https://file-dev.xyyxt.net'
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分

+ 525 - 0
src/views/Marketing/order/offlineOrder/goodsMatch/goodsMatchToBusin.vue

@@ -0,0 +1,525 @@
+<template>
+  <div id="goodsMatchToBusin">
+    <el-row :gutter="10">
+      <el-col :span="4">
+        <el-select
+          v-model="educationId"
+          placeholder="请选择教育类型"
+          :size="size"
+        >
+          <el-option
+            v-for="(items, indexs) in educationType"
+            :key="indexs"
+            :label="items.educationName"
+            :value="items.id"
+          ></el-option>
+        </el-select>
+        <ul class="ulSty">
+          <li
+            v-for="(item, index) in businessList"
+            :key="index"
+            :class="active === item.id ? 'active' : ''"
+            @click="active = item.id"
+          >
+            {{ item.projectName + " - " + item.businessName }}
+          </li>
+          <el-pagination
+            style="text-align: center"
+            small
+            layout="prev, pager, next"
+            :total="total"
+            :current-page.sync="pageNum"
+            @current-change="handleCurrentChange"
+          >
+          </el-pagination>
+        </ul>
+      </el-col>
+      <el-col :span="20">
+        <el-button :size="size" type="primary" @click="add">添加</el-button>
+        <el-table
+          border
+          :data="tableData"
+          style="width: 100%; margin-top: 16px"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="70"
+            align="center"
+            header-align="center"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            v-for="(item, index) in tableSet"
+            :key="index"
+            :prop="item.prop"
+            :label="item.label"
+            :width="item.width"
+          >
+            <template slot-scope="scope">
+              <span v-if="item.scope === 'status'">
+                {{
+                  scope.row[item.prop] === 1
+                    ? "启用"
+                    : scope.row[item.prop] === 0
+                    ? "关闭"
+                    : ""
+                }}
+              </span>
+              <span v-else>{{ scope.row[item.prop] }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            align="center"
+            fixed="right"
+            width="180px"
+          >
+            <template slot-scope="scope">
+              <el-button type="text" @click="add(1, scope.row)">修改</el-button>
+              <el-button type="text" @click="setOption(scope.row)"
+                >配置</el-button
+              >
+              <el-button type="text" @click="del(scope.row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          :total="totalRight"
+          :page-sizes="[10, 20, 50, 100]"
+          :pageSize="tabSearchData.pageSize"
+          :currentPage="tabSearchData.pageNum"
+          @handleSizeChange="handleSizeChange"
+          @handleCurrentChange="handleCurrentChanges"
+        />
+      </el-col>
+    </el-row>
+    <el-dialog
+      @closed="loadingClose"
+      :visible.sync="dialogVisible"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">
+          {{ statusPop === 1 ? "添加" : statusPop === 0 ? "修改" : "详情" }}
+        </div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Close@2x.png"
+            alt=""
+            @click="dialogVisible = false"
+          />
+        </div>
+      </div>
+      <div>
+        <el-form
+          label-position="right"
+          label-width="130px"
+          :model="listData"
+          :rules="rules"
+          ref="listData"
+        >
+          <el-form-item label="配置标题" prop="configName">
+            <el-input
+              v-model="listData.configName"
+              placeholder="请输入配置标题"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="状态" prop="status">
+            <el-radio-group v-model="listData.status">
+              <el-radio :label="1">启用</el-radio>
+              <el-radio :label="0">关闭</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button
+          type="primary"
+          :loading="disabledBtn"
+          @click="submit('listData')"
+          >确 定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+import pagination from "@/components/pagination";
+export default {
+  name: "GoodsMatchToBusin",
+  components: { pagination },
+  data() {
+    return {
+      disabledBtn: false,
+      size: "small",
+      educationId: "", //教育类型ID
+      businessList: [], //业务层次列表
+      active: "", //当前选中业务层次ID
+      total: 0, //左侧业务层次总数量
+      pageNum: 1, //左侧业务层次页码
+      tableData: [],
+      tableSet: [
+        {
+          label: "配置标题",
+          prop: "configName",
+        },
+        {
+          label: "状态",
+          prop: "status",
+          scope: "status",
+          width: "160",
+        },
+      ],
+      listData: {},
+      dialogVisible: false,
+      statusPop: "", //1添加0编辑
+      //表单验证
+      rules: {
+        configName: [
+          { required: true, message: "请输入配置标题", trigger: "blur" },
+        ],
+        status: [{ required: true, message: "请选择状态", trigger: "change" }],
+      },
+      tabSearchData: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      totalRight: 0,
+    };
+  },
+  watch: {
+    /**
+     * 监听教育类型列表数据变化-选中第一个ID
+     */
+    educationType(val, oldVal) {
+      if (val && !oldVal) {
+        this.educationId = val[0].id;
+      }
+    },
+    /**
+     * 监听教育类型ID变化-获取最新业务层次列表
+     */
+    educationId(val, oldVal) {
+      this.getBusList(val);
+    },
+    active(val, oldVal) {
+      this.tabSearchData = {
+        pageNum: 1,
+        pageSize: 10,
+      };
+      this.businessFunc(val);
+    },
+  },
+  computed: {
+    ...mapGetters(["educationType"]),
+  },
+  mounted() {
+    if (this.educationType && this.educationType.length) {
+      this.educationId = this.educationType[0].id;
+    }
+  },
+  methods: {
+    /**
+     * 配置详情跳转
+     */
+    setOption(v) {
+      const jump = () => {
+        this.$router.push({
+          path: "matchInfoData",
+          query: {
+            id: v.id,
+            configName: v.configName,
+            businessId: v.businessId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "MatchInfoData";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "MatchInfoData",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
+    },
+    /**
+     * 新增or修改
+     */
+    add(int, v) {
+      /**
+       * 1修改
+       */
+      if (int === 1) {
+        this.statusPop = 0;
+        this.listData = JSON.parse(JSON.stringify(v));
+      } else {
+        this.listData = {};
+        this.statusPop = 1;
+        this.listData.status = 1;
+        this.listData.businessId = this.active;
+      }
+      this.dialogVisible = true;
+      this.$nextTick(()=>{
+          this.$refs.listData.clearValidate()
+      })
+    },
+    loadingClose() {
+      this.disabledBtn = false;
+    },
+    /**
+     * 表单验证
+     */
+    submit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.rulesTableSumbit();
+        } else {
+          return false;
+        }
+      });
+    },
+    /**
+     * 提交内容
+     */
+    rulesTableSumbit() {
+      this.disabledBtn = true;
+      if (this.statusPop === 1) {
+        this.$api
+          .apporderbusinessconfig(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.businessFunc(this.active);
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+      if (this.statusPop === 0) {
+        this.$api
+          .editorderbusinessconfig(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.businessFunc(this.active);
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+    },
+    /**
+     * 获取业务层次ID
+     */
+    getBusList(id, disy) {
+      if (!id) return;
+      this.$api
+        .inquirebusinessList({
+          status: 1,
+          educationId: id,
+          pageNum: this.pageNum,
+          pageSize: 10,
+          status: "0,1",
+        })
+        .then((res) => {
+          this.businessList = res.rows;
+          this.total = res.total;
+          if (res.rows.length && !disy) {
+            this.active = res.rows[0].id;
+          }
+        });
+    },
+    /**
+     * 获取业务层次对应配置
+     */
+    businessFunc(id) {
+      if (!id) return;
+      this.$api
+        .inquireorderbusinessconfigList({
+          businessId: id,
+          pageSize: this.tabSearchData.pageSize,
+          pageNum: this.tabSearchData.pageNum,
+          status: "0,1",
+        })
+        .then((res) => {
+          this.tableData = res.rows;
+          this.totalRight = res.total;
+        });
+    },
+    /**
+     * 删除
+     */
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {
+          var data = {
+            businessId: v.businessId,
+            id: v.id,
+            status: -1,
+          };
+          this.$api.editorderbusinessconfig(data).then((res) => {
+            this.$message.success("删除成功");
+            this.businessFunc(this.active);
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * 切换页码
+     */
+    handleCurrentChange(v) {
+      this.pageNum = v;
+      this.getBusList(this.educationId, true);
+    },
+    /**
+     * 切换业务层次配置页数
+     */
+    handleSizeChange(v) {
+      this.tabSearchData.pageSize = v;
+      this.tabSearchData.pageNum = 1;
+      this.businessFunc(this.active);
+    },
+    /**
+     * 切换业务层次配置页码
+     */
+    handleCurrentChanges(v) {
+      this.tabSearchData.pageNum = v;
+      this.businessFunc(this.active);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.ulSty {
+  background-color: #eee;
+  & > li {
+    font-size: 14px;
+    padding: 10px 10px;
+    border: 1px solid transparent;
+    cursor: pointer;
+    &:hover {
+      background-color: rgba(64, 158, 255, 0.3);
+      transition: all 0.3s;
+    }
+  }
+}
+.active {
+  background-color: #fff !important;
+  border: 1px solid #000 !important;
+}
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+</style>

+ 144 - 0
src/views/Marketing/order/offlineOrder/goodsMatch/matchInfoData.vue

@@ -0,0 +1,144 @@
+<template>
+  <div id="matchInfoData">
+    <div>
+      <el-button size="mini" type="primary" @click="backConfig"
+        >返回配置列表</el-button
+      >
+      <div class="topSty">
+        当前配置内容:{{ businessData.educationName }} -
+        {{ businessData.projectName }} - {{ businessData.businessName }}
+        <span style="margin-left: 12px">{{ queryData.configName }}</span>
+      </div>
+    </div>
+    <el-table border :data="tableData" style="width: 100%; margin-top: 16px">
+      <el-table-column
+        align="center"
+        v-for="(item, index) in tableSet"
+        :key="index"
+        :prop="item.prop"
+        :label="item.label"
+        :width="item.width"
+      >
+        <template slot-scope="scope">
+          <ul v-if="item.scope === 'list'">
+            <li v-for="(items, indexs) in scope.row[item.prop]" :key="indexs">
+              {{ items.goodsName }}({{ items.majob }})
+            </li>
+          </ul>
+          <span v-else>{{ scope.row[item.prop] }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="180px">
+        <template slot-scope="scope">
+          <el-button type="text" @click="setOption(scope.row)">设置</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "MatchInfoData",
+  data() {
+    return {
+      queryData: {},
+      businessData: {},
+      tableData: [
+        {
+          subjectId: 1,
+          subjectName: "科目一",
+          videoGoods: [
+            {
+              goodsName: "商品一",
+              majob: "专业",
+            },
+          ],
+          bankGoods: [
+            {
+              goodsName: "商品二",
+              majob: "专业",
+            },
+          ],
+          bukaoGoods: [
+            {
+              goodsName: "商品三",
+              majob: "专业",
+            },
+          ],
+          qianpeiGoods: [
+            {
+              goodsName: "商品四",
+              majob: "专业",
+            },
+          ],
+        },
+      ],
+      tableSet: [
+        {
+          label: "科目",
+          prop: "subjectName",
+        },
+        {
+          label: "视频-默认匹配商品",
+          prop: "videoGoods",
+          scope: "list",
+        },
+        {
+          label: "题库-默认匹配商品",
+          prop: "bankGoods",
+          scope: "list",
+        },
+        {
+          label: "补考-默认匹配商品",
+          prop: "bukaoGoods",
+          scope: "list",
+        },
+        {
+          label: "前培-默认匹配商品",
+          prop: "qianpeiGoods",
+          scope: "list",
+        },
+      ],
+    };
+  },
+  created() {
+    this.queryData = this.$route.query;
+  },
+  mounted() {
+    this.initData();
+  },
+  methods: {
+    backConfig() {
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "goodsMatchToBusin",
+        });
+      });
+    },
+    initData() {
+      this.$api
+        .obtainbusiness(Number(this.queryData.businessId))
+        .then((res) => {
+          this.businessData = res.data;
+        });
+      this.$api
+        .inquireorderconfiggoodsList({
+          configId: Number(this.queryData.id),
+        })
+        .then((res) => {});
+    },
+    setOption(v) {},
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.topSty {
+  display: inline-block;
+  font-size: 14px;
+  margin-left: 12px;
+  background: #eee;
+  padding: 4px;
+}
+</style>

+ 457 - 0
src/views/Marketing/order/offlineOrder/index.vue

@@ -0,0 +1,457 @@
+<template>
+  <div id="offlineOrder">
+    <table-list
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button size="medium" type="primary" @click="setGoodsOptions"
+          >设置商品默认匹配</el-button
+        >
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize="pageSize"
+      :currentPage="currentPage"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+    <el-dialog
+      @closed="loadingClose"
+      :visible.sync="dialogVisible"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">
+          {{ statusPop === 1 ? "添加" : statusPop === 0 ? "修改" : "详情" }}
+        </div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
+        </div>
+      </div>
+      <div>
+        <el-form
+          label-position="right"
+          label-width="130px"
+          :model="listData"
+          :rules="rules"
+          ref="listData"
+        >
+          <el-form-item
+            v-for="(items, indexs) in listitem"
+            :key="indexs"
+            :label="items.label"
+            :prop="items.prop"
+          >
+            <el-radio-group
+              v-if="items.scope === 'status'"
+              v-model="listData[items.prop]"
+            >
+              <el-radio
+                v-for="(item, index) in items.options"
+                :key="index"
+                :label="item.value"
+                :disabled="statusPop === 2"
+                >{{ item.label }}</el-radio
+              >
+            </el-radio-group>
+            <el-input
+              :disabled="statusPop === 2"
+              v-else-if="items.scope === 'textarea'"
+              type="textarea"
+              v-model="listData[items.prop]"
+            ></el-input>
+            <el-select
+              v-model="listData[items.prop]"
+              :disabled="statusPop === 2"
+              v-else-if="items.scope === 'select'"
+            >
+              <el-option
+                v-for="item in items.options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+            <el-select
+              v-model="listData[items.prop]"
+              :disabled="statusPop === 2"
+              v-else-if="items.scope === 'tongdao'"
+            >
+              <el-option
+                v-for="item in payList"
+                :key="item.aisleId"
+                :label="item.payWay"
+                :value="item.aisleId"
+              >
+              </el-option>
+            </el-select>
+
+            <el-input
+              :disabled="statusPop === 2"
+              v-else
+              v-model="listData[items.prop]"
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="close">取 消</el-button>
+        <el-button
+          type="primary"
+          :loading="disabledBtn"
+          v-if="statusPop !== 2"
+          @click="submit('listData')"
+          >确 定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+import searchBox from "@/components/searchBox";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "OfflineOrder",
+  components: { searchBox, tableList, pagination },
+  data() {
+    return {
+      disabledBtn: false,
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "线下订单",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: true,
+        addHide: true,
+        backFatherBtn: {
+          status: false,
+          title: "未定义",
+        },
+      },
+      // 表单
+      tableSet: [
+        {
+          label: "收款方账号",
+          prop: "payeeAccount",
+          hidden: true,
+        },
+        {
+          label: "收款方账号类型",
+          prop: "typeStatus",
+          hidden: true,
+          scope: "typeStatusName",
+        },
+        {
+          label: "支付通道",
+          prop: "payWay",
+          hidden: true,
+        },
+        {
+          label: "状态",
+          prop: "status",
+          hidden: true,
+          scope: "status",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      pageSize: 10, //每页多少条数据
+      currentPage: 1, //当前页码
+      // 弹窗字段
+      listitem: [
+        {
+          label: "收款方账号",
+          prop: "payeeAccount",
+        },
+        {
+          label: "收款方账号类型",
+          prop: "typeStatus",
+          scope: "select",
+          options: [
+            {
+              label: "扫码支付",
+              value: 1,
+            },
+            {
+              label: "刷卡支付",
+              value: 2,
+            },
+            {
+              label: "现金",
+              value: 3,
+            },
+            {
+              label: "转账",
+              value: 4,
+            },
+          ],
+        },
+        {
+          label: "支付通道",
+          prop: "aisleId",
+          scope: "tongdao",
+        },
+        {
+          label: "状态",
+          prop: "status",
+          scope: "status",
+          options: [
+            {
+              label: "启用",
+              value: 1,
+            },
+            {
+              label: "关闭",
+              value: 0,
+            },
+          ],
+        },
+      ],
+      //   弹窗数据
+      listData: {},
+      statusPop: -1,
+      dialogVisible: false,
+      //表单验证
+      rules: {
+        payeeAccount: [
+          { required: true, message: "请输入收款方账号", trigger: "blur" },
+        ],
+        typeStatus: [
+          {
+            required: true,
+            message: "请选择收款方账号类型",
+            trigger: ["change", "blur"],
+          },
+        ],
+        aisleId: [
+          {
+            required: true,
+            message: "请选择支付通道",
+            trigger: ["change", "blur"],
+          },
+        ],
+        status: [{ required: true, message: "请选择状态", trigger: "change" }],
+      },
+    };
+  },
+  computed: { ...mapGetters(["payList"]) },
+  mounted() {
+    this.search();
+  },
+  activated() {
+    this.search();
+  },
+  methods: {
+    setGoodsOptions() {
+        this.$router.push({
+          path: "goodsMatchToBusin",
+        });
+    },
+    loadingClose() {
+      this.disabledBtn = false;
+    },
+    search(v) {
+      //   this.loading = true;
+      //   var data = {
+      //     payeeId: this.$route.query.id,
+      //     status: "0,1",
+      //     pageSize: this.pageSize,
+      //     pageNum: this.currentPage,
+      //   };
+      //   this.$api
+      //     .inquirePayeeAisle(data)
+      //     .then((res) => {
+      //       this.tableData = res.rows;
+      //       this.total = res.total;
+      //       this.navText.index = res.total;
+      //     })
+      //     .finally(() => {
+      //       this.loading = false;
+      //     });
+    },
+    init() {
+      this.search();
+    },
+    del(v) {
+      //   this.$alert(
+      //     "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+      //     "提示",
+      //     {
+      //       dangerouslyUseHTMLString: true,
+      //     }
+      //   )
+      //     .then(() => {
+      //       var data = {
+      //         accountId: v.accountId,
+      //         status: -1,
+      //       };
+      //       this.$api.editPayeeAisle(data).then((res) => {
+      //         this.$message.success("删除成功");
+      //         this.search();
+      //       });
+      //     })
+      //     .catch(() => {
+      //       this.$message({
+      //         type: "info",
+      //         message: "已取消删除",
+      //       });
+      //     });
+    },
+    submit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.rulesTableSumbit();
+        } else {
+          return false;
+        }
+      });
+    },
+    rulesTableSumbit() {
+      this.disabledBtn = true;
+      if (this.statusPop === 1) {
+        this.$api
+          .appPayeeAisle(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+      if (this.statusPop === 0) {
+        this.$api
+          .editPayeeAisle(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+    },
+    close() {
+      this.dialogVisible = false;
+    },
+    handleSizeChange(v) {
+      this.pageSize = v;
+      this.currentPage = 1;
+      this.search();
+    },
+    handleCurrentChange(v) {
+      this.currentPage = v;
+      this.search();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+</style>
+