970319330@qq.com 3 hari lalu
induk
melakukan
2f49f95ed2

+ 102 - 0
src/bgj/ServiceMaterialClass/component/saleclass/components/addTop.vue

@@ -0,0 +1,102 @@
+<template>
+  <div class="add">
+    <el-button size="mini" type="primary" @click="dialogVisible=true">{{$t(`新增一级分类`)}}</el-button>
+    <el-dialog
+      :title="$t(`新增一级分类`)"
+      :visible.sync="dialogVisible"
+      width="500px"
+      append-to-body
+      :before-close="handleClose">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="tool.onlyZh('130px')" class="demo-ruleForm">
+        <el-form-item :label="$t(`类别名称`)" prop="itemclassname">
+          <div class="flex-align-center">
+            <el-input v-model="ruleForm.itemclassname" size="small" class="inline-16" :placeholder="$t(`请输入类别名称`)">
+            </el-input>
+            <el-input v-model="ruleForm.num" size="small" style="width:90px" :placeholder="$t(`排序`)">
+            </el-input>
+          </div>
+        </el-form-item>
+        <el-form-item :label="$t(`类别编号`)" prop="itemclassnum">
+          <el-input v-model="ruleForm.itemclassnum"  size="small" :placeholder="$t(`请输入类别编号`)"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-checkbox v-model="ruleForm.istool" :true-label="1" :false-label="0">{{$t(`是否工具`)}}</el-checkbox>
+          <el-checkbox v-model="ruleForm.ishide" :true-label="1" :false-label="0">{{$t(`是否隐藏`)}}</el-checkbox>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div>
+          <el-button @click="dialogVisible = false" size="small">{{$t('取 消')}}</el-button>
+          <el-button type="primary" @click="submit" size="small">{{$t('确 定')}}</el-button>
+        </div>
+      </span>
+    </el-dialog>
+  </div>
+
+</template>
+
+<script>
+export default {
+  name: 'addTop',
+  data() {
+    return {
+      currentData:'',
+      dialogVisible:false,
+      ruleForm: {
+        "itemclassnum":'',
+        "itemclassname":'',
+        "istool":0,
+        "ishide":0,
+        "num":''
+      },
+      rules:{
+        itemclassname: [
+          { required: true, message: this.$t('请输入类别名称'), trigger: 'blur' },
+        ],
+        itemclassnum: [
+          { required: true, message: this.$t('请输入类别编号'), trigger: 'blur' },
+        ],
+      }
+    }
+  },
+  props:['type','sa_brandid'],
+  computed:{
+  },
+  methods: {
+    handleClose() {
+      this.dialogVisible = false
+    },
+    submit() {
+      this.$refs.ruleForm.validate(async val => {
+        if(val) {
+          let res = await this.$api.requested({
+            "id": "20220922110306",
+            "version":1,
+            "content": {
+                "itemclassid":0,
+                "sc_brandid":this.sa_brandid,
+                "parentid":0,
+                "itemclassnum":this.ruleForm.itemclassnum,
+                "itemclassname":this.ruleForm.itemclassname,
+                "classtype":"营销",
+                "num":this.ruleForm.num || "1",
+                "ishide":this.ruleForm.ishide,
+                "istool":this.ruleForm.istool
+            }
+          })
+          this.tool.showMessage(res,() => {
+            this.$emit('addSuccess')
+            this.$refs.ruleForm.resetFields()
+            this.ruleForm.istool = 0
+            this.ruleForm.ishide = 0
+            this.dialogVisible = false
+          })
+        }
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+</style>

+ 30 - 0
src/bgj/ServiceMaterialClass/component/saleclass/components/delete.vue

@@ -0,0 +1,30 @@
+<template>
+  <div class="padding-left:10px">
+    <el-popconfirm :confirm-button-text="$t('确定')" :cancel-button-text="$t('取消')" :title="$t('确定删除当前数据吗')+'?'" @confirm="deleteRow()">
+      <el-button size="mini" type="text"  slot="reference" icon="el-icon-delete">{{$t('删 除')}}</el-button>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['id'],
+  methods: {
+    async deleteRow() {
+      let res = await this.$api.requested({
+          "id": "20220922110503",
+          "version":1,
+          "content": {
+              "itemclassid":this.id
+          }
+      })
+
+      this.tool.showMessage(res,() => {
+        this.$emit('deleteSuccess')
+      })
+    },
+  }
+}
+
+</script>
+</style>

+ 107 - 0
src/bgj/ServiceMaterialClass/component/saleclass/components/edit.vue

@@ -0,0 +1,107 @@
+<template>
+  <div class="add">
+    <el-button size="mini" type="text"  @click="dialogVisible=true" v-if="type === 'add'" icon="el-icon-plus">{{$t(`新增下级`)}}</el-button>
+    <el-button size="mini" type="text" @click="editBtn" icon="el-icon-edit"  v-else>{{$t('编 辑')}}</el-button>
+    <el-dialog
+      :title="type == 'add' ? $t('新增类别') : $t('编辑类别')"
+      :visible.sync="dialogVisible"
+      width="500px"
+      append-to-body
+      :before-close="handleClose">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-width="tool.onlyZh('130px')" class="demo-ruleForm">
+        <el-form-item :label="$t(`类别名称`)" prop="itemclassname">
+          <div class="flex-align-center">
+            <el-input v-model="ruleForm.itemclassname" size="small" class="inline-16" :placeholder="$t(`请输入类别名称`)">
+            </el-input>
+            <el-input v-model="ruleForm.num" size="small" style="width:90px" :placeholder="$t(`排序`)">
+            </el-input>
+          </div>
+        </el-form-item>
+        <el-form-item :label="$t(`类别编号`)" prop="itemclassnum">
+          <el-input v-model="ruleForm.itemclassnum" :disabled="type!='add'" size="small" :placeholder="$t(`请输入类别编号`)"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-checkbox :disabled="type == 'add'" v-model="ruleForm.istool" :true-label="1" :false-label="0">{{$t(`是否工具`)}}</el-checkbox>
+          <el-checkbox v-model="ruleForm.ishide" :true-label="1" :false-label="0">{{$t(`是否隐藏`)}}</el-checkbox>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div>
+          <el-button @click="dialogVisible = false" size="small">{{$t('取 消')}}</el-button>
+          <el-button type="primary" @click="submit" size="small">{{$t('确 定')}}</el-button>
+        </div>
+      </span>
+    </el-dialog>
+  </div>
+
+</template>
+
+<script>
+export default {
+  name: 'edit',
+  data() {
+    return {
+      currentData:'',
+      dialogVisible:false,
+      ruleForm: {
+        "itemclassnum":'',
+        "itemclassname":'',
+        "istool":0,
+        "ishide":0,
+        "num":''
+      },
+      rules:{
+        itemclassname: [
+          { required: true, message: this.$t('请输入类别名称'), trigger: 'blur' },
+        ],
+        itemclassnum: [
+          { required: true, message: this.$t('请输入类别编号'), trigger: 'blur' },
+        ],
+      }
+    };
+  },
+  props:['type','rowData'],
+  computed:{
+  },
+  methods: {
+    editBtn() {
+      this.dialogVisible = true
+      this.ruleForm = Object.assign({},this.ruleForm,this.rowData)
+    },
+    handleClose() {
+      this.dialogVisible = false
+    },
+    submit() {
+      this.$refs.ruleForm.validate(async val => {
+        if(val) {
+          let res = await this.$api.requested({
+            "id": "20220922110306",
+            "version":1,
+            "content": {
+                "itemclassid":this.type == 'add' ? 0 : this.rowData.itemclassid,
+                "sc_brandid":this.rowData.sa_brandid,
+                "parentid":this.type == 'add' ? this.rowData.itemclassid : 0,
+                "itemclassnum":this.ruleForm.itemclassnum,
+                "itemclassname":this.ruleForm.itemclassname,
+                "classtype":"营销",
+                "num":this.ruleForm.num || "1",
+                "ishide":this.ruleForm.ishide,
+                "istool":this.ruleForm.istool
+            }
+          })
+          this.tool.showMessage(res,() => {
+            this.$emit('addSuccess')
+            this.$refs.ruleForm.resetFields()
+            this.ruleForm.istool = 0
+            this.ruleForm.ishide = 0
+            this.dialogVisible = false
+          })
+        }
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+</style>

+ 139 - 0
src/bgj/ServiceMaterialClass/component/saleclass/index.vue

@@ -0,0 +1,139 @@
+<template>
+  <div class="brand">
+    <addTop class="mt-10" :sa_brandid="data.sa_brandid" @addSuccess="department"></addTop>
+    <el-table
+      :data="tableData"
+      stripe
+      row-key="itemclassid"
+      size="small"
+      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+      <el-table-column
+        width="120">
+      </el-table-column>
+      <el-table-column
+        prop="num"
+        :label="$t(`序号`)"
+        width="80">
+      </el-table-column>
+      <el-table-column
+        prop="itemclassfullname"
+        show-overflow-tooltip
+        :label="$t(`类别名称`)"
+        width="200">
+        <template slot-scope="scope">
+          <span style="color:#3874f6"><b>{{scope.row.itemclassfullname}}</b></span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="itemclassnum"
+        :label="$t(`类别编码`)">
+      </el-table-column>
+      <el-table-column
+        prop="itemclassname"
+        :label="$t(`类别简称`)">
+        <template slot-scope="scope">
+          <span style="color:#3874f6"><b>{{scope.row.itemclassname}}</b></span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="isdeep"
+        :label="$t(`是否末级`)">
+        <template slot-scope="scope">
+          {{scope.row.isdeep === 1?$t('是'):$t('否')}}
+        </template>
+      </el-table-column>
+       <el-table-column
+        prop="istool"
+        :label="$t(`是否工具`)">
+        <template slot-scope="scope">
+          {{scope.row.istool === 1?$t('是'):$t('否')}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="ishide"
+        :label="$t(`是否隐藏`)">
+         <template slot-scope="scope">
+          {{scope.row.ishide === 1?$t('是'):$t('否')}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        :label="$t('操作')"
+        width="250"
+        fixed="right">
+        <template slot-scope="scope">
+          <Edit class="inline-16" type="add" @addSuccess="addSuccess" :rowData="scope.row"/>
+          <Edit class="inline-16" type="edit" @addSuccess="addSuccess" :rowData="scope.row"/>
+          <Del  class="inline-16" :id="scope.row.itemclassid" @deleteSuccess="deleteSuccess"/>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import addTop from './components/addTop.vue'
+import Edit from './components/edit.vue'
+import Del from './components/delete.vue'
+export default {
+  props:['data'],
+  components:{
+    addTop,
+    Edit,
+    Del
+  },
+  data() {
+    return {
+      tableData:[]
+    }
+  },
+  created() {
+  },
+  methods: {
+    async department (callback) {
+      this.tableData = this.createTreeData(this.data.ttemclass)
+    },
+    createTreeData (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        var elNode = {
+          num:node['num'],
+          itemclassfullname:node['itemclassfullname'],
+          itemclassname: node["itemclassname"],
+          parentid:node['parentid'],
+          itemclassid:node['itemclassid'],
+          itemclassnum:node['itemclassnum'],
+          sa_brandid:that.data.sa_brandid,
+          ishide:node['ishide'],
+          isdeep:node['isdeep'],
+          istool:node['istool'],
+          children: []
+        }
+
+        if (node.subdep && node.subdep.length > 0) {
+          for (var index = 0; index < node.subdep.length; index++) {
+            elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
+    addSuccess() {
+      this.department()
+    },
+    deleteSuccess() {
+      this.department()
+    }
+  },
+  mounted () {
+    this.department()
+  }
+};
+</script>
+
+<style scoped>
+</style>

+ 60 - 0
src/bgj/ServiceMaterialClass/index.vue

@@ -0,0 +1,60 @@
+<template>
+  <div>
+    <basicLayout
+      ref="basicLayout"
+      :oldFormPath="{
+        add:'bgj/ServiceMaterialClass/modules',
+      }"
+      tableName="brandTable"
+      idName="sa_brandid"
+      :apiId="{query:20220922110406,del:20220922085203}"
+      :options="options"
+    >
+      <div slot="custom">
+      </div>
+      <div slot="titleRight" style="display:flex;margin-left:10px">
+      </div>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'brandLoge'">
+          <previewImage v-if="scope.data.column.data.attinfos && scope.data.column.data.attinfos[0]" style="height:40px;width:40px;" :image="scope.data.column.data.attinfos[0]" :list="scope.data.column.data.attinfos" :deletebtn="false"></previewImage>
+        </div>
+        <div v-else>
+          {{$t(scope.data.column.data[[scope.data.column.columnname]])}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data.data" @onSuccess="$refs.basicLayout.listData()" :type="'text'"></edit>
+        <brand_del v-if="tool.checkAuth($route.name,'onDelete')" :data="scope.data.data" @onSuccess="$refs.basicLayout.listData()" :type="'text'"></brand_del>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import edit from './modules/edit'
+import brand_del from './modules/delete'
+import previewImage from '@/components/previewImage/index'
+
+export default {
+  components:{
+    edit,
+    brand_del,
+    previewImage
+  },
+  data () {
+    return {
+      options:[
+      ],
+      search: {}
+
+    }
+  },
+  computed:{
+  },
+  methods:{
+  }
+}
+
+</script>
+<style>
+</style>

+ 87 - 0
src/bgj/ServiceMaterialClass/modules/add.vue

@@ -0,0 +1,87 @@
+<template>
+  <div>
+    <!-- <el-button size="small" type="primary" @click="onShow" >{{$t('新 建')}}</el-button> -->
+    <el-drawer
+      :title="$t(`新增品牌`)"
+      :visible.sync="drawer"
+      :wrapperClosable="false"
+      size="800px"
+      direction="rtl"
+      :show-close="false"
+      append-to-body
+      @close="drawer = false;form.brandName = ''">
+      <div class="drawer__panel">
+      <div>
+        <el-row :gutter="50">
+          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" :label-width="tool.onlyZh('80px')">
+            <el-col :span="20">
+              <el-form-item prop="brandName" :label="$t(`品牌名称`)">
+                <el-input v-model="form.brandName" :placeholder="$t(`输入品牌名称`)"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false;form.brandName = ''" class="normal-btn-width">{{$t('取 消')}}</el-button>
+        <el-button size="small" type="primary" @click="onSubmit"  class="normal-btn-width">{{$t('确 定')}}</el-button>
+      </div>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  data(){
+    return {
+      drawer:false,
+      url:null,
+      rules:{
+        brandName: [
+          { required: true, message: this.$t('品牌名称不可为空'), trigger: 'blur' },
+        ],
+      },
+      form:{
+        brandName:''
+      },
+    }
+  },
+  components:{
+  },
+  methods:{
+    onShow (){
+      this.drawer = true
+    },
+    onClose () {
+      this.form = {
+         brandName:''
+      }
+    },
+    onSubmit () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20220922085003",
+          "version": 1,
+          "content": {
+            "sa_brandid": 0,
+            "brandname": this.form.brandName
+          }
+        })
+        this.tool.showMessage(res, () => {
+          this.ownerid = res.data
+          this.drawer = false
+          this.form.brandName = ''
+          this.$emit('onSuccess')
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 35 - 0
src/bgj/ServiceMaterialClass/modules/delete.vue

@@ -0,0 +1,35 @@
+<template>
+  <div class="inline-16">
+    <el-popconfirm :confirm-button-text="$t('确定')" :cancel-button-text="$t('取消')"
+        :title="$t(`确定删除当前选中品牌吗`)+'?'"
+        @confirm="deleteRow()">
+      <el-button slot="reference" size="small" type="text">{{$t('删 除')}}</el-button>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "delete",
+  props:['data'],
+  methods: {
+    async deleteRow(){
+      const res = await this.$api.requested({
+        "id": "20220922085203",
+        "version":1,
+        "content": {
+          "sa_brandid": this.data.sa_brandid
+        }
+      })
+      this.tool.showMessage(res, () => {
+        console.log(res)
+        this.$emit('onSuccess')
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 99 - 0
src/bgj/ServiceMaterialClass/modules/edit.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="inline-16">
+    <el-button size="small" type="text" @click="onShow">{{$t('编 辑')}}</el-button>
+    <el-drawer
+      :title="$t(`编辑品牌`)"
+      :visible.sync="drawer"
+      :wrapperClosable="false"
+      size="90%"
+      direction="rtl"
+      :show-close="false"
+      append-to-body>
+      <div class="drawer__panel">
+        <el-form  :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" :label-width="tool.onlyZh('80px')">
+          <el-form-item  prop="brandname" :label="$t(`品牌名称`)">
+            <el-input v-model="form.brandname"  :placeholder="$t(`输入品牌名称`)" style="width:300px"></el-input>
+          </el-form-item>
+          <el-form-item  :label="$t(`品牌logo`)">
+            <uploadFile ref="upload" v-if="!form.attinfos || form.attinfos.length === 0" style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sa_brand',ownerid:form.sa_brandid,usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
+            <previewImage v-else  :image="form.attinfos[0]" :deletebtn="true"
+              @onSuccess="clearCover"></previewImage>
+            <small style="display:block;margin-top:20px" class="info">{{$t(`注:建议上传图片大小`)}}1024x1024px,{{$t('大小不超过')}}2M,{{$t('格式为')}}JPG/PNG</small>
+          </el-form-item>
+        </el-form>
+        <saleclass :data="data"></saleclass>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false" class="normal-btn-width">{{$t('取 消')}}</el-button>
+        <el-button size="small" type="primary" @click="onSubmit"   class="normal-btn-width">{{$t('确 定')}}</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import uploadFile from '../../../components/upload/hw_obs_upload.vue'
+import previewImage from '@/components/previewImage/index.vue'
+import saleclass from '../component/saleclass/index'
+export default {
+name: "edit",
+  props:['data'],
+  data(){
+    return {
+      drawer:false,
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      rules:{
+        brandname: [
+          { required: true, message: this.$t('品牌名称不可为空'), trigger: 'blur' },
+        ],
+      },
+      form:{
+        brandname:'',
+        attinfos:[]
+      },
+    }
+  },
+  components:{
+    uploadFile,
+    previewImage,
+    saleclass
+  },
+  created() {
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      this.form = Object.assign({},this.form,this.data)
+    },
+    onSubmit () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20220922085003",
+          "version": 1,
+          "content": {
+            "sa_brandid": this.form.sa_brandid,
+            "brandname": this.form.brandname
+          }
+        })
+        this.tool.showMessage(res, () => {
+          this.ownerid = res.data
+          this.drawer = false
+          this.$emit('onSuccess')
+        })
+      })
+    },
+    uploadSuccess(res){
+      this.form.attinfos = JSON.parse(res.attinfos).data
+      this.$refs['upload'].dialogUploadVisible = false
+    },
+    clearCover () {
+      this.form.attinfos = []
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 80 - 0
src/bgj/ServiceMaterialClass/modules/list.vue

@@ -0,0 +1,80 @@
+<template>
+  <div>
+    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :height="tableHieght">
+      <template v-slot:customcol="scope">
+        <div v-if="scope.column.columnname === 'brandLoge'">
+          <img width="70" height="70" style="margin-top:10px;border-radius:4px" :src="scope.column.data.attinfos && scope.column.data.attinfos[0]?scope.column.data.attinfos[0].url:''" alt="">
+        </div>
+        <p v-else>{{$t(scope.column.data[scope.column.columnname])}}</p>
+      </template>
+      <template v-slot:opreation="scope">
+        <slot name="edit" :data="scope.data"></slot>
+        <slot name="del" :data="scope.data"></slot>
+      </template>
+    </tableLayout>
+    <div style="margin-top:16px;text-align:right">
+      <el-pagination
+          background
+          small
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="params.content.pageSize"
+          layout="total, prev, pager, next, jumper"
+          :total="total">
+      </el-pagination>
+    </div>
+  </div>
+
+</template>
+
+<script>
+export default {
+name: "list",
+  data(){
+    return {
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      params:{
+        "id": "20220922110406",
+        "version":1,
+        "content": {
+          pageSize:10,
+          pageNumber:1,
+          "sc_brandid": 0,
+          "sys_enterpriseid": 0
+        }
+      }
+
+    }
+  },
+  mounted() {
+    this.listData()
+  },
+  methods:{
+    async listData(){
+      const res=await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).serviceMaterialClassTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 11 - 1
src/router/bgj.js

@@ -173,6 +173,16 @@ const bgj = [
           import(/* webpackChunkName: "about" */ '@/bgj/pointsbasedorder/modules/detail'),
       },
     ],
-  }
+  },
+  {
+    path: '/ServiceMaterialClass',
+    name: 'ServiceMaterialClass',
+    meta: {
+      title: '服务物料分类',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/bgj/ServiceMaterialClass/index')
+  },
 ];
 export default bgj;