lhl 4 dagen geleden
bovenliggende
commit
8516eb123b

+ 107 - 0
package-lock.json

@@ -2764,12 +2764,15 @@
       "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
       "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA=="
     },
+<<<<<<< HEAD
     "acorn-import-phases": {
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
       "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
       "dev": true
     },
+=======
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     "acorn-jsx": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
@@ -4539,12 +4542,15 @@
       "version": "1.5.1",
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
       "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+<<<<<<< HEAD
     },
     "baseline-browser-mapping": {
       "version": "2.9.9",
       "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.9.tgz",
       "integrity": "sha512-V8fbOCSeOFvlDj7LLChUcqbZrdKD9RU/VR260piF1790vT0mfLSwGc/Qzxv3IqiTukOpNtItePa0HBpMAj7MDg==",
       "dev": true
+=======
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "batch": {
       "version": "0.6.1",
@@ -7858,6 +7864,19 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
       "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+<<<<<<< HEAD
+=======
+    },
+    "des.js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+      "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "destroy": {
       "version": "1.2.0",
@@ -10033,6 +10052,19 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
       "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA=="
+<<<<<<< HEAD
+=======
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "hawk": {
       "version": "3.1.3",
@@ -10062,6 +10094,20 @@
       "version": "10.7.3",
       "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
       "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
+<<<<<<< HEAD
+=======
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "hoek": {
       "version": "2.16.3",
@@ -12327,6 +12373,15 @@
       "requires": {
         "launch-editor": "^2.6.0"
       }
+<<<<<<< HEAD
+=======
+    },
+    "lazy-cache": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+      "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
+      "dev": true
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "lcid": {
       "version": "1.0.0",
@@ -13258,6 +13313,15 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
       "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+<<<<<<< HEAD
+=======
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+      "dev": true
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "minimatch": {
       "version": "3.1.2",
@@ -14357,6 +14421,25 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
       "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+<<<<<<< HEAD
+=======
+      "requires": {
+        "callsites": "^3.0.0"
+      },
+      "dependencies": {
+        "callsites": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+          "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+        }
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+      "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+      "dev": true,
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
       "requires": {
         "callsites": "^3.0.0"
       },
@@ -18552,6 +18635,21 @@
         }
       }
     },
+    "shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+      "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+      "requires": {
+        "kind-of": "^6.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+          "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+        }
+      }
+    },
     "shebang-command": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -19973,6 +20071,15 @@
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
       "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+<<<<<<< HEAD
+=======
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+      "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==",
+      "dev": true
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
     },
     "tunnel-agent": {
       "version": "0.6.0",

+ 79 - 0
src/api/system/goods.js

@@ -92,6 +92,85 @@ export function  SystemGoodsCate(data = {}) {
     data : data
   });
 }
+
+/**
+ * 获取广告分类
+ * @param data
+ * @constructor
+ */
+export function  getGoodsCate(data = {}) {
+  return request({
+    url: '/systemv1/product/categoryList',
+    method: 'get',
+    params : data
+  });
+}
+
+/**
+ * 添加编辑分类
+ * @param data
+ * @constructor
+ */
+export function addGoodsCate(data) {
+  return request({
+    url: '/systemv1/product/categorySave',
+    method: 'post',
+    data : data
+  });
+}
+
+/**
+ * 删除商品分类
+ * @param data
+ * @constructor
+ */
+export function delGoodsCate(data) {
+  return request({
+    url: '/systemv1/product/categoryDelete',
+    method: 'post',
+    data : data
+  });
+}
+
+/**
+ * 获取商品列表
+ * @param data
+ * @constructor
+ */
+export function getGoodsList(data) {
+  return request({
+    url: '/systemv1/product/productList',
+    method: 'get',
+    params : data
+  });
+}
+
+/**
+ * 添加编辑商品
+ * @param data
+ * @constructor
+ */
+export function saveProduct(data) {
+  return request({
+    url: '/systemv1/product/productSave',
+    method: 'post',
+    data : data
+  });
+}
+
+
+/**
+ * 删除商品
+ * @param data
+ * @constructor
+ */
+export function delProduct(data) {
+  return request({
+    url: '/systemv1/product/productDelete',
+    method: 'get',
+    params : data
+  });
+}
 /**
  * 添加编辑分类
  * @param data

+ 4 - 0
src/api/system/points.js

@@ -13,6 +13,7 @@ export function getCzBill(params) {
     method: 'get',
     params: params,
   })
+<<<<<<< HEAD
 }
 
 /**
@@ -45,3 +46,6 @@ export function fahuo(data) {
     data
   })
 }
+=======
+}
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5

+ 18 - 0
src/api/system/serviceLabel.js

@@ -31,3 +31,21 @@ export function  SystemServiceLabelDel(data = {}) {
   });
 }
 
+// 激活码列表
+export function  codeList(data = {}) {
+  return request({
+    url: '/systemv1/code/list',
+    method: 'post',
+    data : data
+  });
+}
+
+// 添加激活码
+export function  codeAdd(data = {}) {
+  return request({
+    url: '/systemv1/code/add',
+    method: 'post',
+    data : data
+  });
+}
+

+ 16 - 16
src/components/system/goods/cate.vue

@@ -11,13 +11,13 @@
 	  
 	  
       <Form ref="formValidate" :model="formValidate" :label-width="50">
-        <Row type="flex"  :gutter="24">
+        <!-- <Row type="flex"  :gutter="24">
           <Col v-bind="grid">
             <FormItem label="搜索:"  label-for="status2">
               <Input search enter-button placeholder="请输入名称" v-model="formValidate.title" @on-search="userSearchs"/>
             </FormItem>
           </Col>
-        </Row>
+        </Row> -->
         <Row type="flex">
           <Col v-bind="grid">
             <Button type="primary" @click="tapAdd"  icon="md-add">添加分类</Button>
@@ -29,7 +29,7 @@
              no-filtered-userFrom-text="暂无筛选结果"  :loading="loading" highlight-row>
 
         <template slot-scope="{ row, index }" slot="imgs">
-          <img v-lazy="row.img" :src="row.img" v-image-preview style="width: 60px;cursor: pointer;"/>
+          <img v-lazy="row.pic" :src="row.pic" v-image-preview style="width: 60px;cursor: pointer;"/>
         </template>
 
 
@@ -60,13 +60,13 @@
     <Modal v-model="dialogVisible" :title="title" @on-cancel="editClose">
 
       <el-form ref="form" :model="form" label-width="120px">
-        <el-form-item label="分类名称" prop="title" :rules="[{ required: true, message: '请输入分类名称'}]">
-          <el-input placeholder="请输入分类名称" autocomplete="off" v-model="form.title"></el-input>
+        <el-form-item label="分类名称" prop="cate_name" :rules="[{ required: true, message: '请输入分类名称'}]">
+          <el-input placeholder="请输入分类名称" autocomplete="off" v-model="form.cate_name"></el-input>
         </el-form-item>
-        <el-form-item label="分类图标" prop="img" :rules="[{ required: true, message: '请上传分类图标'}]">
+        <el-form-item label="分类图标" prop="pic" :rules="[{ required: true, message: '请上传分类图标'}]">
           <ui-upload
             :upUrl="upUrl"
-            :img ="form.img"
+            :img ="form.pic"
             fileName="分类图标"
             :headers="upHeaders"
             :updata="{isz:0}"
@@ -98,7 +98,7 @@
     import UiUpload from "@/ui/upload/index";
     import Setting from "@/setting";
     import util from "@/libs/util";
-    import {SystemGoodsCate,SystemGoodsCateAdd,SystemGoodsCateDel} from "../../../api/system/goods";
+    import {getGoodsCate,addGoodsCate,delGoodsCate,SystemGoodsCate,SystemGoodsCateAdd,SystemGoodsCateDel} from "../../../api/system/goods";
     export default {
         name: "goods_cate",
         components: { UiUpload, IPageHeader},
@@ -121,7 +121,7 @@
                 columns1: [
                     {
                         title: '标题',
-                        key: 'title',
+                        key: 'cate_name',
                         minWidth: 150
                     },
                     {
@@ -161,8 +161,8 @@
                 },
                 formValidate:{title:""},
                 form:{
-                    title     : "",
-                    img       : "",
+                    cate_name     : "",
+                    pic       : "",
                     sort      : 0,
                     is_show   : 1,
                 },
@@ -192,7 +192,7 @@
                     title : this.formValidate.title,
                     page : this.page.page,
                 };
-                SystemGoodsCate(data)
+                getGoodsCate(data)
                     .then(res=>{
                         this.loading = false;
                         if(res.code == 200) {
@@ -225,7 +225,7 @@
             tapAdd:function(sassid){
                 this.dialogVisible = true;
                 this.$refs['form'].resetFields();
-                this.form = this.$utils.resetFields(this.form, {is_show:0,sort:0});
+                this.form = this.$utils.resetFields(this.form, {is_show:1,sort:0});
             },
 
             /**
@@ -247,7 +247,7 @@
                             data[i] = this.form[i];
                         }
                         data['data'] = JSON.stringify(this.dataAr);
-                        SystemGoodsCateAdd(data)
+                        addGoodsCate(data)
                             .then(res => {
                                 loading.close();
                                 if (res.code == 200) {
@@ -273,7 +273,7 @@
                 if(res.code == -1) {
                     Notice.error({ title : "系统提示", content:res.msg});
                 } else {
-                    this.form.img = res.data.img;
+                    this.form.pic = res.data.img;
                 }
             },
 			tapEdit:function(row){
@@ -289,7 +289,7 @@
                     type: 'warning'
                 }).then(() => {
                     this.$utils.loading(this, "删除数据中...");
-                    SystemGoodsCateDel({id: row.id})
+                    delGoodsCate({id: row.id})
                         .then(res => {
                             this.$utils.loadingClose();
                             this.loading = true;

+ 537 - 0
src/components/system/points/list.vue

@@ -33,20 +33,35 @@
 					<span v-text="row.order_id" style="display: block;"></span>
 				</template>
 				<template slot-scope="{ row, index }" slot="uid">
+<<<<<<< HEAD
 					<div>{{row.nickname || '微信用户'}}[UID:{{row.uid}}]</div>
 					<div>{{row.mobile || '未绑定手机号'}}</div>
 				</template>
 				<template slot-scope="{ row, index }" slot="imgs">
 					<div v-if="row.imgs.length>0" style="display: flex;">
 						<img v-for="item in row.imgs" v-lazy="item" :src="item" v-image-preview
+=======
+					<div>{{ row.nickname || '微信用户' }}[UID:{{ row.uid }}]</div>
+					<div>{{ row.mobile || '未绑定手机号' }}</div>
+				</template>
+				<template slot-scope="{ row, index }" slot="imgs">
+					<div  style="display: flex;">
+						<img v-lazy="row.image" :src="row.image" v-image-preview
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 							style="width: 60px;cursor: pointer" />
 					</div>
 				</template>
 
 				<template slot-scope="{ row, index }" slot="handle">
+<<<<<<< HEAD
 					<div><el-button plain size="mini" @click="">查看评论</el-button></div>
 					<br />
 					<div><el-button plain size="mini" @click="">删除</el-button></div>
+=======
+					<div><el-button plain size="mini" @click="editGood(row)">编辑</el-button></div>
+					<br />
+					<div><el-button plain size="mini" @click="delGood(row.id)">删除</el-button></div>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				</template>
 			</Table>
 			<div class="acea-row row-right page">
@@ -56,15 +71,39 @@
 
 		<Modal v-model="sendModel" title="添加商品" @on-ok="sendOk('sendFormValidate')" @on-cancel="sendCancel" width="900">
 			<Form :model="sendData" :label-width="labelWidth" :rules="ruleValidate" ref="sendFormValidate">
+<<<<<<< HEAD
 				<FormItem label="商品名称" prop="name">
 					<Input v-model="sendData.name" type="text" placeholder="请输入商品名称"></Input>
 				</FormItem>
 				<FormItem label="兑换积分" prop="points">
 					<Input v-model="sendData.name" type="number" placeholder="请输入兑换积分"></Input>
+=======
+				<FormItem label="商品名称" prop="store_name">
+					<Input v-model="sendData.store_name" type="text" placeholder="请输入商品名称"></Input>
+				</FormItem>
+				<FormItem label="商品分类" prop="cate_id">
+					<el-select v-model="sendData.cate_id" placeholder="选择分类">
+						<el-option :label="item.cate_name" :value="item.id" v-for="(item, index) in cateData"
+							:key="index"></el-option>
+					</el-select>
+				</FormItem>
+				<FormItem label="兑换积分" prop="price">
+					<Input v-model="sendData.price" type="number" placeholder="请输入兑换积分"></Input>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				</FormItem>
 				<FormItem label="商品库存" prop="stock">
 					<Input v-model="sendData.stock" type="number" placeholder="请输入商品库存"></Input>
 				</FormItem>
+<<<<<<< HEAD
+=======
+				<!-- unit_name -->
+				<FormItem label="商品单位" prop="unit_name">
+					<Input v-model="sendData.unit_name" type="text" placeholder="请输入商品单位"></Input>
+				</FormItem>
+				<FormItem label="商品销量" prop="sales">
+					<Input v-model="sendData.sales" type="number" placeholder="请输入商品销量"></Input>
+				</FormItem>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				<FormItem label="封面图片" prop="image">
 					<div class="clearfix">
 						<div class="upimg-item fx-r fx-bc fx-ac" style="" v-if="sendData.image">
@@ -72,19 +111,34 @@
 							<i class="el-icon-error img-remove-btn" @click="removeImg(index)"></i>
 						</div>
 						<ui-upload style="float: left;" :upUrl="upUrl" fileName="上传图片" :headers="upHeaders"
+<<<<<<< HEAD
 							:updata="{isz:0,code:'goods'}" @onUpload="onUpload" v-if="sendData.image == ''"></ui-upload>
 					</div>
 				</FormItem>
 				<FormItem label="图片" prop="imgs">
 					<div class="clearfix">
 						<div class="upimg-item fx-r fx-bc fx-ac" style="" v-for="(item,index) in sendData.imgs"
+=======
+							:updata="{ isz: 0, code: 'goods' }" @onUpload="onUpload"
+							v-if="sendData.image == ''"></ui-upload>
+					</div>
+				</FormItem>
+				<FormItem label="轮播图片" prop="slider_image">
+					<div class="clearfix">
+						<div class="upimg-item fx-r fx-bc fx-ac" style="" v-for="(item, index) in sendData.slider_image"
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 							:key="index">
 							<img v-lazy="item" :src="item" v-image-preview />
 							<i class="el-icon-error img-remove-btn" @click="removeImgs(index)"></i>
 						</div>
 						<ui-upload style="float: left;" :upUrl="upUrl" fileName="上传图片" :headers="upHeaders"
+<<<<<<< HEAD
 							:updata="{isz:0,code:'goods'}" @onUpload="onUploads"
 							v-if="sendData.imgs.length<6"></ui-upload>
+=======
+							:updata="{ isz: 0, code: 'goods' }" @onUpload="onUploads"
+							v-if="sendData.slider_image.length < 6"></ui-upload>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 					</div>
 				</FormItem>
 				<FormItem label="商品详情" prop="content">
@@ -94,6 +148,15 @@
 						:defaultConfig="editorConfig" v-model="sendData.content" @onChange="onChange"
 						@onCreated="onCreated" />
 				</FormItem>
+<<<<<<< HEAD
+=======
+				<FormItem label="是否上架" prop="status">
+					<el-radio-group v-model="sendData.is_show">
+						<el-radio :label="1">上架</el-radio>
+						<el-radio :label="0">下架</el-radio>
+					</el-radio-group>
+				</FormItem>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 			</Form>
 			<div slot="footer">
 				<Button size="large" :loading="modal_loading" @click="sendCancel">取消</Button>
@@ -104,6 +167,7 @@
 	</div>
 </template>
 <script>
+<<<<<<< HEAD
 	import axios from 'axios'
 	import {
 		DomEditor
@@ -502,4 +566,477 @@
 		right: 0px;
 		font-size: 24px;
 	}
+=======
+import { getGoodsCate, getGoodsList, saveProduct,delProduct } from "../../../api/system/goods";
+
+import axios from 'axios'
+import {
+	DomEditor
+} from '@wangeditor/editor'
+import {
+	Editor,
+	Toolbar
+} from '@wangeditor/editor-for-vue'
+import IPageHeader from "../../../layouts/system/page-header/index";
+import {
+	SystemShowTemplateList
+} from "../../../api/system/user";
+import Setting from '@/setting';
+import UiUpload from "@/ui/upload/index";
+import {
+	upLoad
+} from '../../../api/system/sys'
+
+export default {
+	name: "pointsList",
+	components: {
+		SystemShowTemplateList,
+		IPageHeader,
+		UiUpload,
+		Editor,
+		Toolbar
+	},
+	computed: {},
+	data() {
+		return {
+			editor: null,
+			toolbarConfig: {
+				// toolbarKeys: [ /* 显示哪些菜单,如何排序、分组 */ ],
+				excludeKeys: ['group-video', 'emotion', 'fullScreen'],
+			},
+			editorConfig: {
+				placeholder: "请输入内容...",
+				// autoFocus: false,
+
+				// 所有的菜单配置,都要在 MENU_CONF 属性下
+				MENU_CONF: {
+					uploadImage: {
+
+					},
+				},
+			},
+			modal_loading: false,
+			ruleValidate: {
+				cate_id: [{
+					required: true,
+					message: '请选择商品分类'
+				}],
+				store_name: [{
+					required: true,
+					message: '请输入商品名称',
+					trigger: 'blur'
+				}],
+				content: [{
+					required: true,
+					message: '请输入商品详情',
+				}],
+				stock: [{
+					required: true,
+					message: '请输入商品库存',
+				}],
+				image: [{
+					required: true,
+					message: '请上传封面图片'
+				}],
+				slider_image: [{
+					required: true,
+					message: '请上传轮播图片'
+				}],
+				price: [{
+					required: true,
+					message: '请输入兑换积分',
+					trigger: 'blur'
+				}],
+			},
+			labelWidth: 120,
+			upHeaders: {},
+			upUrl: '',
+			sendData: {
+				sales: '',
+				cate_id: '',
+				price: '',
+				stock: '',
+				store_name: '',
+				content: '',
+				image: '',
+				slider_image: [],
+				is_show: 1
+			},
+			sendModel: false,
+			pageTitle: "积分商品",
+			options: {
+				shortcuts: [{
+					text: '今天',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
+							.getDate()));
+						return [start, end];
+					}
+				},
+				{
+					text: '昨天',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
+							new Date().getDate() - 1)));
+						end.setTime(end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
+							new Date().getDate())));
+						return [start, end];
+					}
+				},
+				{
+					text: '最近7天',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
+							new Date().getDate() - 6)));
+						return [start, end];
+					}
+				},
+				{
+					text: '最近30天',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
+							new Date().getDate() - 29)));
+						return [start, end];
+					}
+				},
+				{
+					text: '本月',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
+							1)));
+						return [start, end];
+					}
+				},
+				{
+					text: '本年',
+					value() {
+						const end = new Date();
+						const start = new Date();
+						start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
+						return [start, end];
+					}
+				}
+				]
+			},
+
+			orderData: {
+				uid: "",
+				status: "all",
+				time: [],
+				mobile: "",
+				show_template_id: "",
+				unit_name: "",
+			},
+			columns: [{
+				title: 'ID',
+				align: 'center',
+				key: 'id',
+				align: 'center'
+			},
+			{
+				title: '商品封面',
+				align: 'center',
+				slot: 'imgs',
+				align: 'center'
+			},
+			{
+				title: '商品名',
+				key: 'store_name',
+				align: 'center'
+			},
+			{
+				title: '单位',
+				align: 'center',
+				key: 'unit_name',
+				align: 'left'
+			},
+			{
+				title: '积分',
+				align: 'center',
+				key: 'price',
+				align: 'left'
+			},
+
+			{
+				title: '时间',
+				align: 'center',
+				key: 'create_time',
+				align: 'left'
+			},
+			{
+				title: '操作',
+				align: 'center',
+				slot: 'handle',
+				align: 'left'
+			},
+			],
+			loading: false,
+			orderList: [],
+			orderDatalist: {},
+			orderId: 0,
+			page: {
+				total: 0, // 总条数
+				page: 1, // 当前页
+				pageSize: 10 // 每页显示条数
+			},
+			cateData: [],
+		}
+	},
+
+	created() {
+		if (this.$route.query.title) {
+			this.pageTitle = this.$route.query.title;
+		}
+		if (this.$route.query.uid) {
+			this.orderData.uid = parseInt(this.$route.query.uid);
+		}
+		if (this.$route.query.show_template_id) {
+			this.orderData.show_template_id = parseInt(this.$route.query.show_template_id);
+		}
+		this.initView();
+		this.getGoodsList();
+		this.getGoodsCate();
+	},
+	methods: {
+		getGoodsList() {
+			getGoodsList().then(res => {
+				this.orderList = res.data.list.map(item => {
+					item.slider_image = item.slider_image.split(',');
+					return item;
+				});
+			})
+		},
+		getGoodsCate() {
+			getGoodsCate().then(res => {
+				this.cateData = res.data.list;
+			})
+		},
+		onCreated(editor) {
+			this.editor = Object.seal(editor); // 【注意】一定要用 Object.seal() 否则会报错
+			console.log(this.editor.getMenuConfig());
+
+		},
+		onChange(editor) {
+			console.log("onChange", editor.getHtml()); // onChange 时获取编辑器最新内容
+		},
+		getEditorText() {
+			const editor = this.editor;
+			if (editor == null) return;
+
+			console.log(editor.getText()); // 执行 editor API
+		},
+		printEditorHtml() {
+			const editor = this.editor;
+			if (editor == null) return;
+
+			console.log(editor.getHtml()); // 执行 editor API
+		},
+		initView: function () {
+			let that = this
+			var upHeaders = {};
+			this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
+			const token = this.$utils.util.cookies.get('system_token');
+			if (token) {
+				upHeaders['SYSTEM-ACC-TOKEN'] = token;
+			}
+			this.upHeaders = upHeaders;
+
+			this.editorConfig.MENU_CONF['uploadImage'] = {
+				async customUpload(file, insertFn) {
+					const formData = new FormData()
+					formData.append('file', file)
+					formData.append('code', 'good')
+					formData.append('isz', '0')
+					// formData.append('sign', this.generateSign(file.name)) // 自定义签名
+
+					try {
+						// const response = await axios.post(that.upUrl, formData, {
+						// 	headers: {
+						// 		'SYSTEM-ACC-TOKEN': token
+						// 	}
+						// })
+						upLoad(formData).then(res => {
+							insertFn(res.data.img)
+						})
+
+						// if (response.data.success) {
+						// 	 // 插入图片到编辑器
+						// }
+					} catch (error) {
+						console.error('上传失败:', error)
+					}
+				}
+			}
+		},
+		onUpload: function (res) {
+			if (res.code == -1) {
+				Notice.error({
+					title: "系统提示",
+					content: res.msg
+				});
+			} else {
+				this.sendData.image = res.data.img;
+			}
+		},
+		onUploads: function (res) {
+			if (res.code == -1) {
+				Notice.error({
+					title: "系统提示",
+					content: res.msg
+				});
+			} else {
+				this.sendData.slider_image.push(res.data.img);
+			}
+		},
+		removeImgs: function (index) {
+			this.sendData.slider_image.splice(index, 1);
+			// this.$delete(this.sendData.imgs, index);
+		},
+		removeImg: function (index) {
+			// this.$delete(this.sendData.imgs, index);
+			this.sendData.image = ''
+		},
+		sendOpen() {
+			this.sendModel = true
+		},
+		sendCancel() {
+			this.sendModel = false
+			this.sendData = {
+				content: '',
+				slider_image: [],
+				store_name: '',
+			}
+		},
+		sendOk(name) {
+			console.log(this.sendData);
+			this.$refs[name].validate((valid) => {
+				if (valid) {
+					let pdata = JSON.parse(JSON.stringify(this.sendData));
+					pdata.slider_image = pdata.slider_image.join(',');
+
+					saveProduct(pdata).then(res => {
+						if (res.code == 200) {
+							this.sendCancel()
+							this.getGoodsList()
+							this.$Message.success('发布成功!');
+						} else {
+							this.$Message.error(res.msg);
+						}
+
+					}).catch(err => {
+						this.$Message.error(err.msg);
+					})
+				} else { }
+			})
+		},
+		tabsHandleClick: function (tab, event) {
+			this.page.page = 1;
+			this.getData();
+		},
+		orderSearch: function () {
+			this.page.page = 1;
+			this.getData();
+		},
+		/**
+		 * 分页
+		 */
+		tapPage: function (index) {
+			this.page.page = index;
+			this.getData();
+		},
+		delGood(id) {
+			this.$confirm('确定删除吗?', '系统提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				delProduct({
+					id: id
+				}).then(res => {
+					if (res.code == 200) {
+						this.$Message.success('删除成功!');
+						this.getGoodsList()
+					} else {
+						this.$Message.error(res.msg);
+					}
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			}).catch(() => {
+				this.$Message({
+					type: 'info',
+					message: '已取消删除'
+				});
+			});
+		},
+		editGood(row) {
+			this.sendData = JSON.parse(JSON.stringify(row));
+			this.sendModel = true;
+		},
+		/**
+		 * 获取数据
+		 */
+		getData: function () {
+			var that = this;
+			// this.loading = true;
+			var data = {
+				page: that.page.page,
+				...that.orderData
+			};
+			// SystemShowTemplateList(data)
+			//     .then(res=>{
+			//         that.loading = false;
+			//         if(res.code == 200) {
+			//             that.orderList = res.data.list;
+			//             that.page.pageSize = res.data.pageSize;
+			//             that.page.count = res.data.pageCount;
+			//         } else {
+			//             that.$alert(res.msg);
+			//         }
+			//     })
+			//     .catch(err=>{
+			//         that.loading = false;
+			//         that.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+			//     });
+		},
+
+	}
+}
+</script>
+<style src="@wangeditor/editor/dist/css/style.css"></style>
+<style scoped>
+@import "~vue2-editor/dist/vue2-editor.css";
+
+.upimg-item {
+	width: 82px;
+	height: 82px;
+	margin-right: 5px;
+	overflow: hidden;
+	float: left;
+	margin-bottom: 5px;
+	position: relative;
+}
+
+.upimg-item img {
+	width: 82px;
+	cursor: pointer;
+}
+
+.img-remove-btn {
+	position: absolute;
+	top: 0px;
+	right: 0px;
+	font-size: 24px;
+}
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 </style>

+ 128 - 0
src/components/system/points/order.vue

@@ -36,6 +36,7 @@
 					<div>{{row.nickname || '微信用户'}}[UID:{{row.uid}}]</div>
 					<div>{{row.mobile || '未绑定手机号'}}</div>
 				</template>
+<<<<<<< HEAD
 				<template slot-scope="{ row, index }" slot="product">
 					<div v-for="item in row.cart_info">
 						<div>
@@ -61,6 +62,8 @@
 					<el-link type="danger" v-if="row.status == 0">未支付</el-link>
 					<el-link type="info" v-if="row.status == -1">已取消</el-link>
 				</template>
+=======
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				<template slot-scope="{ row, index }" slot="imgs">
 					<div v-if="row.imgs.length>0" style="display: flex;">
 						<img v-for="item in row.imgs" v-lazy="item" :src="item" v-image-preview
@@ -69,9 +72,15 @@
 				</template>
 
 				<template slot-scope="{ row, index }" slot="handle">
+<<<<<<< HEAD
 					<div><el-button plain size="mini" @click="sendOpen(row)" v-if="row.status == 1">发货</el-button></div>
 					<!--<br />
 					<div><el-button plain size="mini" @click="">删除</el-button></div> -->
+=======
+					<div><el-button plain size="mini" @click="">查看评论</el-button></div>
+					<br />
+					<div><el-button plain size="mini" @click="">删除</el-button></div>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				</template>
 			</Table>
 			<div class="acea-row row-right page">
@@ -79,6 +88,7 @@
 			</div>
 		</Card>
 
+<<<<<<< HEAD
 		<Modal v-model="sendModel" title="发货" @on-ok="sendOk('sendFormValidate')" @on-cancel="sendCancel" width="800">
 			<Form :model="sendData" :label-width="labelWidth" :rules="ruleValidate" ref="sendFormValidate">
 				<FormItem label="快递公司名称" prop="express_code">
@@ -96,6 +106,31 @@
 				<Button type="primary" size="large" :loading="modal_loading"
 					@click="sendOk('sendFormValidate')">提交</Button>
 			</div>
+=======
+		<Modal v-model="sendModel" title="发布贴子" @on-ok="sendOk('sendFormValidate')" @on-cancel="sendCancel" width="800">
+			<Form :model="sendData" :label-width="labelWidth" :rules="ruleValidate" ref="sendFormValidate">
+				<FormItem label="贴子文本" prop="content">
+					<Input v-model="sendData.content" type="textarea" :autosize="{minRows: 5,maxRows: 5}"
+						placeholder="请输入贴子内容"></Input>
+				</FormItem>
+				<FormItem label="图片">
+					<div class="clearfix">
+						<div class="upimg-item fx-r fx-bc fx-ac" style="" v-for="(item,index) in sendData.imgs"
+							:key="index">
+							<img v-lazy="item" :src="item" v-image-preview />
+							<i class="el-icon-error img-remove-btn" @click="removeImgs(index)"></i>
+						</div>
+						<ui-upload style="float: left;" :upUrl="upUrl" fileName="上传图片" :headers="upHeaders"
+							:updata="{isz:0,code:'goods'}" @onUpload="onUpload"
+							v-if="sendData.imgs.length<6"></ui-upload>
+					</div>
+				</FormItem>
+			</Form>
+			<div slot="footer">
+				<Button  size="large"  :loading="modal_loading" @click="sendCancel">取消</Button>
+			            <Button type="primary" size="large"  :loading="modal_loading" @click="sendOk('sendFormValidate')">提交</Button>
+			        </div>
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 		</Modal>
 	</div>
 </template>
@@ -106,10 +141,14 @@
 	} from "../../../api/system/user";
 	import Setting from '@/setting';
 	import UiUpload from "@/ui/upload/index";
+<<<<<<< HEAD
 	import {
 		getOrderList,
 		fahuo
 	} from '../../../api/system/points.js'
+=======
+
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 	export default {
 		name: "pointsList",
 		components: {
@@ -120,6 +159,7 @@
 		computed: {},
 		data() {
 			return {
+<<<<<<< HEAD
 				kdList: [{
 						val: 'ZTO',
 						lab: '中通快递'
@@ -212,15 +252,30 @@
 						message: '请输入快递单号',
 						trigger: 'blur'
 					}],
+=======
+				modal_loading: false,
+				ruleValidate: {
+					content: [{
+						required: true,
+						message: '请输入贴子内容',
+						trigger: 'blur'
+					}],
+
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				},
 				labelWidth: 120,
 				upHeaders: {},
 				upUrl: '',
 				sendData: {
+<<<<<<< HEAD
 					express_type: '',
 					express_code: '',
 					express_num: '',
 					id: ''
+=======
+					content: '',
+					imgs: []
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				},
 				sendModel: false,
 				pageTitle: "积分订单",
@@ -290,12 +345,20 @@
 				},
 
 				orderData: {
+<<<<<<< HEAD
 					pageSize: 20
 					// uid: "",
 					// status: "all",
 					// time: [],
 					// mobile: "",
 					// show_template_id: "",
+=======
+					uid: "",
+					status: "all",
+					time: [],
+					mobile: "",
+					show_template_id: "",
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				},
 				columns: [{
 						title: 'ID',
@@ -304,11 +367,19 @@
 						align: 'center'
 					},
 					{
+<<<<<<< HEAD
 						title: '订单ID',
 						align: 'center',
 						key: 'order_id',
 						align: 'center'
 					},
+=======
+							title: '订单ID',
+							align: 'center',
+							key: 'order_id',
+							align: 'center'
+						},
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 					{
 						title: '用户',
 						align: 'center',
@@ -317,13 +388,21 @@
 					},
 					{
 						title: '商品名',
+<<<<<<< HEAD
 						slot: 'product',
+=======
+						key: 'name',
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 						align: 'center'
 					},
 					{
 						title: '支付积分',
 						align: 'center',
+<<<<<<< HEAD
 						key: 'pay_price',
+=======
+						key: 'points',
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 						align: 'left'
 					},
 					{
@@ -333,6 +412,7 @@
 						align: 'left'
 					},
 					{
+<<<<<<< HEAD
 						title: '状态',
 						align: 'center',
 						slot: 'status',
@@ -342,6 +422,11 @@
 						title: '时间',
 						align: 'center',
 						key: 'create_time',
+=======
+						title: '时间',
+						align: 'center',
+						key: 'add_time',
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 						align: 'left'
 					},
 					{
@@ -376,10 +461,13 @@
 			this.initView();
 		},
 		methods: {
+<<<<<<< HEAD
 			selectKd(e) {
 				let kd = this.kdList.find(item => item.val == e)
 				this.sendData.express_type = kd.lab
 			},
+=======
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 			initView: function() {
 				var upHeaders = {};
 				this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
@@ -388,7 +476,10 @@
 					upHeaders['SYSTEM-ACC-TOKEN'] = token;
 				}
 				this.upHeaders = upHeaders;
+<<<<<<< HEAD
 				this.getData();
+=======
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 			},
 			onUpload: function(res) {
 				if (res.code == -1) {
@@ -403,6 +494,7 @@
 			removeImgs: function(index) {
 				this.$delete(this.sendData.imgs, index);
 			},
+<<<<<<< HEAD
 			sendOpen(row) {
 				this.sendData = {
 					express_type: '',
@@ -410,11 +502,15 @@
 					express_num: '',
 					id: row.id
 				}
+=======
+			sendOpen() {
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				this.sendModel = true
 			},
 			sendCancel() {
 				this.sendModel = false
 				this.sendData = {
+<<<<<<< HEAD
 					express_type: '',
 					express_code: '',
 					express_num: '',
@@ -438,6 +534,20 @@
 						})
 						
 					} else {}
+=======
+					content: '',
+					imgs: []
+				}
+				console.log('sendCancel');
+			},
+			sendOk(name) {
+				this.$refs[name].validate((valid) => {
+					if (valid) {
+						this.sendCancel()
+						this.$Message.success('发布成功!');
+					} else {
+					}
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 				})
 			},
 			tabsHandleClick: function(tab, event) {
@@ -465,6 +575,7 @@
 					page: that.page.page,
 					...that.orderData
 				};
+<<<<<<< HEAD
 				getOrderList(data)
 					.then(res => {
 						that.loading = false;
@@ -480,6 +591,23 @@
 						that.loading = false;
 						that.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
 					});
+=======
+				// SystemShowTemplateList(data)
+				//     .then(res=>{
+				//         that.loading = false;
+				//         if(res.code == 200) {
+				//             that.orderList = res.data.list;
+				//             that.page.pageSize = res.data.pageSize;
+				//             that.page.count = res.data.pageCount;
+				//         } else {
+				//             that.$alert(res.msg);
+				//         }
+				//     })
+				//     .catch(err=>{
+				//         that.loading = false;
+				//         that.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+				//     });
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 			},
 
 		}

+ 290 - 0
src/components/system/showTemplate/code.vue

@@ -1,4 +1,5 @@
 <template>
+<<<<<<< HEAD
     <div>
         <i-page-header :title="pageTitle"></i-page-header>
         <Card :bordered="false" dis-hover class="ivu-mt">
@@ -190,10 +191,151 @@
 				
 			},
             initView:function(){
+=======
+	<div>
+		<i-page-header class="product_tabs" title="模版激活码">
+		</i-page-header>
+		<Card :bordered="false" dis-hover class="ivu-mt">
+			<div class="fx-r" style="padding: 20px 0;">
+				<el-select v-model="detial.status" @change="tapSeach" placeholder="请选择是否显示">
+					<el-option label="全部" value=""></el-option>
+					<el-option label="待使用" value="0"></el-option>
+					<el-option label="已使用" value="1"></el-option>
+					<el-option label="已失效" value="-1"></el-option>
+				</el-select>
+
+				<div class="fx-g1"></div>
+				<el-button type="danger" style="margin-left: 6px;" @click="tapAdd">添加激活码</el-button>
+			</div>
+			<el-table :data="detial.data" v-loading="detial.loading" :stripe="true" :border="true">
+				<el-table-column prop="id" label="ID" width="80" align="center">
+				</el-table-column>
+				<el-table-column prop="code" label="激活码">
+				</el-table-column>
+				<el-table-column prop="status" label="绑定模版" align="left">
+					<template slot-scope="scope">
+						{{isTemplate(scope.row.show_template_id)}}(ID:{{scope.row.show_template_id}})
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="状态" width="80">
+					<template slot-scope="scope">
+						<span v-if="scope.row.status==0">待使用</span>
+						<span v-else-if="scope.row.status==1">已使用</span>
+						<!-- <span v-else-if="scope.row.status==-1">已失效</span> -->
+					</template>
+				</el-table-column>
+				<!-- <el-table-column  align="center" label="操作"     prop="handle" width="150">
+	  	    <template slot-scope="scope">
+	  			<div><el-button plain size="mini" @click="tapEdit(scope.row)">编辑</el-button></div>
+	  	    </template>
+	  	</el-table-column> -->
+			</el-table>
+			<div class="acea-row row-right page">
+				<Page :total="detial.pageCount" show-elevator show-total @on-change="tapPage"
+					:page-size="detial.pageSize" />
+			</div>
+		</Card>
+		<Modal v-model="dialogVisible" :title="title" @on-cancel="editClose">
+			<el-form ref="form" :model="form" label-width="120px">
+				<el-form-item label="模版ID" prop="show_template_id" :rules="[{ required: true, message: '请输入模版ID'}]">
+					<el-select v-model="form.show_template_id" placeholder="请选择是否显示">
+						<el-option v-for="ls in modelList" :label="ls.title" :value="ls.id"></el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="数量" prop="num" :rules="[{ required: true, message: '请输入生成数量'}]">
+					<el-input placeholder="请输入要生成的数量" v-model="form.num"></el-input>
+				</el-form-item>
+			</el-form>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="dialogVisible = false">取 消</el-button>
+				<el-button type="primary" @click="subAdmin">确 定</el-button>
+			</span>
+		</Modal>
+
+	</div>
+</template>
+
+<script>
+	import IPageHeader from "@/layouts/system/page-header/index";
+	import {
+		mapState,
+		mapActions
+	} from 'vuex';
+	import UiUpload from "@/ui/upload/index";
+	import Setting from "@/setting";
+	import util from "@/libs/util";
+	import {
+		codeList,
+		codeAdd,
+		SystemServiceLabelDel
+	} from "../../../api/system/serviceLabel";
+	import {
+		SystemShowTemplateList
+	} from "../../../api/system/showTemplate";
+	export default {
+		name: "codeList",
+		components: {
+			UiUpload,
+			IPageHeader
+		},
+		data() {
+			return {
+				title: "添加激活码",
+				dialogVisible: false,
+				upHeaders: {},
+				upUrl: "",
+				detial: {
+					data: [],
+					title: "",
+					status: "",
+					page: 1,
+					loading: true,
+					pageSize: 0,
+					pageCount: 0,
+				},
+				form: {
+					num: 1,
+					show_template_id: '',
+				},
+				// 模版列表
+				modelList: []
+			}
+		},
+		mounted() {
+			this.initView();
+			this.SystemShowTemplateList()
+		},
+		methods: {
+			isTemplate(id){
+				for(let i = 0; i < this.modelList.length; i++) {
+					let item = this.modelList[i]
+					if(item.id ==id){
+						return item.title
+					}
+				}
+				return "模版已失效"
+			},
+			SystemShowTemplateList() {
+				SystemShowTemplateList({
+						is_hot: "",
+						is_recommend: "",
+						page: 1,
+						status: "",
+						time: "",
+						title: ""
+					})
+					.then(res => {
+						this.modelList = res.data.list;
+					})
+					.catch(err => {});
+			},
+			initView: function() {
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
 				var upHeaders = {};
 				this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
 				const token = this.$utils.util.cookies.get('system_token');
 				if (token) {
+<<<<<<< HEAD
 				    upHeaders['SYSTEM-ACC-TOKEN'] = token;
 				}
 				this.upHeaders = upHeaders;
@@ -216,11 +358,101 @@
 				this.detial.status = status;
 				this.detial.page = 1
 				this.getData()
+=======
+					upHeaders['SYSTEM-ACC-TOKEN'] = token;
+				}
+				this.upHeaders = upHeaders;
+				this.getData();
+			},
+
+
+			/**
+			 * 获取数据
+			 */
+			getData: function() {
+				var data = {};
+				this.detial.loading = true;
+				data.page = this.detial.page;
+				data.title = this.detial.title;
+				data.status = this.detial.status;
+				codeList(data)
+					.then(res => {
+						this.detial.loading = false;
+						this.detial.data = res.data.list;
+						this.detial.pageSize = res.data.pageSize;
+						this.detial.pageCount = res.data.pageCount;
+					})
+					.catch(err => {
+						this.detial.loading = false;
+						this.$alert('网络繁忙,加载失败,请稍等片刻在尝试!', '系统提示');
+					});
+
+			},
+			//搜索栏目
+			tapSeach: function() {
+				this.detial.page = 1;
+				this.getData();
+			},
+
+			//关闭
+			editClose: function() {
+				this.dialogVisible = false;
+			},
+			/**
+			 * 添加分类
+			 */
+			tapAdd: function(sassid) {
+				this.dialogVisible = true;
+				this.$refs['form'].resetFields();
+				this.form = this.$utils.resetFields(this.form, {
+					status: 0,
+					seq: 0
+				});
+			},
+
+			/**
+			 * 分页
+			 */
+			tapPage: function(index) {
+				this.page.page = index;
+				this.getData();
+			},
+			/**
+			 * 修改数据
+			 */
+			subAdmin: function(e) {
+				this.$refs['form'].validate((valid) => {
+					if (valid) {
+						let loading = this.$loading("提交数据中...");
+						var data = {};
+						for (var i in this.form) {
+							data[i] = this.form[i];
+						}
+						data['data'] = JSON.stringify(this.dataAr);
+						codeAdd(data)
+							.then(res => {
+								loading.close();
+								if (res.code == 200) {
+									this.dialogVisible = false;
+									this.$Message.success("操作成功");
+									this.getData();
+								} else {
+									this.$alert(res.msg, '系统提示');
+								}
+							})
+							.catch(err => {
+								loading.close();
+								this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+							});
+					}
+				});
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
 			},
 			/**
 			 * 上传文件
 			 * @param res
 			 */
+<<<<<<< HEAD
 			onUpload:function (res) {
 			    if(res.code == -1) {
 			        Notice.error({ title : "系统提示", content:res.msg});
@@ -331,3 +563,61 @@ iframe.videoIframe{border: 0px;padding: 0px;}
 	.upimg-item img{width: 82px;cursor: pointer;}
 	.img-remove-btn{position: absolute;top: 0px;right: 0px;font-size: 24px;}
 </style>
+=======
+			onUpload: function(res) {
+				if (res.code == -1) {
+					Notice.error({
+						title: "系统提示",
+						content: res.msg
+					});
+				} else {
+					this.form.img = res.data.img;
+				}
+			},
+			tapEdit: function(row) {
+				this.form = JSON.parse(JSON.stringify(row));
+				this.dialogVisible = true;
+				this.title = "编辑标签";
+			},
+			// 删除
+			tapDel(row) {
+				this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					this.$utils.loading(this, "删除数据中...");
+					SystemServiceLabelDel({
+							id: row.id
+						})
+						.then(res => {
+							this.$utils.loadingClose();
+							this.loading = true;
+							if (res.code == 200) {
+								this.getData();
+							} else {
+								this.$alert(res.msg);
+							}
+						})
+						.catch(err => {
+							this.$utils.loadingClose();
+							this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+						});
+				}).catch((e) => {});
+			},
+		}
+	}
+</script>
+<style scoped>
+	.platform-img {
+		width: 20px;
+		height: 20px;
+		background: #f2f2f2;
+		margin-right: 4px;
+	}
+
+	.platform-img img {
+		width: 100%;
+	}
+</style>
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7

+ 513 - 34
src/router/routes.js

@@ -1,9 +1,107 @@
 const system = [{
+	path: '/system',
+	name: "system",
+	meta: {
+		title: '后台系统'
+	},
+	component: () => import('@/layouts/system/index.vue'),
+	children: [{
 		path: '/system',
-		name: "system",
+		name: 'system_index',
+		meta: {
+			title: '首页',
+			auth: false
+		},
+<<<<<<< HEAD
+		component: () => import('@/components/system/index/index')
+	},
+	{
+		path: '/system/index',
+		name: 'system_index',
 		meta: {
-			title: '后台系统'
+			title: '首页',
+			auth: false
 		},
+		component: () => import('@/components/system/index/index')
+	},
+	{
+		path: '/system/user/index',
+		name: 'system_user_index',
+		meta: {
+			title: '个人设置',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/user/index')
+	},
+	{
+		path: '/system/role/index',
+		name: 'system_role_index',
+		meta: {
+			title: '角色管理'
+		},
+		component: () => import('@/components/system/setting/role/index')
+	},
+	{
+		path: '/system/role/permissions',
+		name: 'system_role_permissions',
+		meta: {
+			title: '权限配置'
+		},
+		component: () => import('@/components/system/setting/role/permissions')
+	},
+	{
+		path: '/system/role/seting',
+		name: 'system_role_seting',
+		meta: {
+			title: '角色设置'
+		},
+		component: () => import('@/components/system/setting/role/seting')
+	},
+	{
+		path: '/system/admin/index',
+		name: 'system_admin_index',
+		meta: {
+			title: '账号管理',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/admin/index')
+	},
+	{
+		path: '/system/setting/log/index',
+		name: 'system_setting_log_index',
+		meta: {
+			title: '日志管理',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/log/index')
+	},
+	{
+		path: '/system/setting/log/login',
+		name: 'system_setting_log_login',
+		meta: {
+			title: '用户登录',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/log/login')
+	},
+	{
+		path: '/system/user/list',
+		name: 'system_user_list',
+		meta: {
+			title: '用户列表',
+			auth: true
+		},
+		component: () => import('@/components/system/user/list')
+	},
+	{
+		path: '/system/user/workerList',
+		name: 'system_user_workerList',
+		meta: {
+			title: '从业人员',
+			auth: true
+		},
+		component: () => import('@/components/system/user/workerList')
+=======
 		component: () => import('@/layouts/system/index.vue'),
 		children: [{
 				path: '/system',
@@ -166,6 +264,15 @@ const system = [{
 				},
 				component: () => import('@/components/system/showTemplate/list')
 			},
+			{
+				path: '/system/showTemplate/code',
+				name: 'system_showTemplate_code',
+				meta: {
+					title: '模版激活码',
+					auth: true
+				},
+				component: () => import('@/components/system/showTemplate/code')
+			},
 			{
 				path: '/system/showTemplate/serviceType',
 				name: 'system_showTemplate_serviceType',
@@ -193,15 +300,6 @@ const system = [{
 				},
 				component: () => import('@/components/system/showTemplate/serviceLabel')
 			},
-			{
-				path: '/system/showTemplate/code',
-				name: 'system_showTemplate_code',
-				meta: {
-					title: '激活码',
-					auth: true
-				},
-				component: () => import('@/components/system/showTemplate/code')
-			},
 			{
 				path: '/system/user/workType',
 				name: 'system_user_workType',
@@ -269,7 +367,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/article/list.vue')
-
+			
 			},
 			{
 				path: '/system/article/detail',
@@ -279,7 +377,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/article/detail.vue')
-
+			
 			},
 			{
 				path: '/system/eduction/list',
@@ -289,7 +387,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/eduction/list.vue')
-
+			
 			},
 			{
 				path: '/system/eduction/cate',
@@ -299,7 +397,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/eduction/cate.vue')
-
+			
 			},
 			{
 				path: '/system/eduction/detail',
@@ -309,7 +407,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/eduction/detail.vue')
-
+			
 			},
 			{
 				path: '/system/eduction/grlists',
@@ -366,6 +464,7 @@ const system = [{
 					auth: true
 				},
 				component: () => import('@/components/system/task/paytrade')
+<<<<<<< HEAD
 			},
 			{
 				path: '/system/signing/list',
@@ -457,44 +556,424 @@ const system = [{
 				},
 				component: () => import('@/components/system/points/bill')
 			},
+=======
+			}
+>>>>>>> cb1d49f18e1de41493a5367d7dbd57ab75e95ea5
 		]
+>>>>>>> 00cdb012347f8de7a2fb45a11f3a68c07563a0d7
 	},
 
 	{
-		path: '/system/widget/images/index.html',
-		name: `images`,
+		path: '/system/user/showTemplateList',
+		name: 'system_user_showTemplateList',
 		meta: {
-			auth: ['admin-user-user-index'],
-			title: '上传图片'
+			title: '用户模板',
+			auth: true
 		},
-		component: () => import('@/components/system/uploadPictures/widgetImg')
+		component: () => import('@/components/system/user/showTemplateList')
 	},
 	{
-		path: '/system/login',
-		name: "system_login",
+		path: '/system/audit/infoAudit',
+		name: 'system_audit_infoAudit',
 		meta: {
-			title: '总用户登录'
+			title: '信息审核',
+			auth: true
 		},
-		component: () => import('@/components/system/login/index')
+		component: () => import('@/components/system/audit/infoAudit')
+	},
+	{
+		path: '/system/audit/infoAuditItem',
+		name: 'system_audit_infoAuditItem',
+		meta: {
+			title: '信息审核详情',
+			auth: true
+		},
+		component: () => import('@/components/system/audit/infoAuditItem')
+	},
+	{
+		path: '/system/audit/typeAudit',
+		name: 'system_audit_typeAudit',
+		meta: {
+			title: '平台认证',
+			auth: true
+		},
+		component: () => import('@/components/system/audit/typeAudit')
+	},
+	{
+		path: '/system/audit/typeAuditItem',
+		name: 'system_audit_typeAuditItem',
+		meta: {
+			title: '平台认证详情',
+			auth: true
+		},
+		component: () => import('@/components/system/audit/typeAuditItem')
 	},
 	// {
-	//   path: '/index',
-	//   name: "system_index_index",
+	//   path: '/system/audit/userAudit',
+	//   name: 'system_audit_userAudit',
 	//   meta: {
-	//     title: '首页'
+	//     title: '用户审核',
+	//     auth: true
 	//   },
-	//   component: () => import('@/components/system/index/index')
+	//   component: () => import('@/components/system/audit/userAudit')
 	// },
 
+	{
+		path: '/system/showTemplate/list',
+		name: 'system_showTemplate_list',
+		meta: {
+			title: '模板列表',
+			auth: true
+		},
+		component: () => import('@/components/system/showTemplate/list')
+	},
+	{
+		path: '/system/showTemplate/serviceType',
+		name: 'system_showTemplate_serviceType',
+		meta: {
+			title: '服务内容',
+			auth: true
+		},
+		component: () => import('@/components/system/showTemplate/serviceType')
+	},
+	{
+		path: '/system/showTemplate/serviceTimeType',
+		name: 'system_showTemplate_serviceTimeType',
+		meta: {
+			title: '收费时长类型',
+			auth: true
+		},
+		component: () => import('@/components/system/showTemplate/serviceTimeType')
+	},
+	{
+		path: '/system/showTemplate/serviceLabel',
+		name: 'system_showTemplate_serviceLabel',
+		meta: {
+			title: '标签列表',
+			auth: true
+		},
+		component: () => import('@/components/system/showTemplate/serviceLabel')
+	},
+	{
+		path: '/system/showTemplate/code',
+		name: 'system_showTemplate_code',
+		meta: {
+			title: '激活码',
+			auth: true
+		},
+		component: () => import('@/components/system/showTemplate/code')
+	},
+	{
+		path: '/system/user/workType',
+		name: 'system_user_workType',
+		meta: {
+			title: '职业类别',
+			auth: true
+		},
+		component: () => import('@/components/system/user/workType')
+	},
+
+
+	{
+		path: '/system/user/moneyDetail',
+		name: 'system_user_moneyDetail',
+		meta: {
+			title: '余额明细',
+			auth: true
+		},
+		component: () => import('@/components/system/user/moneyDetail')
+	},
+	{
+		path: '/system/sys/index',
+		name: 'system_sys_index',
+		meta: {
+			title: '网站基本管理',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/sys/index')
+	},
+
+	{
+		path: '/system/menu/sys',
+		name: 'system_menu_sys',
+		meta: {
+			title: '菜单管理',
+			auth: true
+		},
+		component: () => import('@/components/system/setting/menu/sys')
+	},
+
+	{
+		path: '/system/adver/page',
+		name: 'system_adver_page',
+		meta: {
+			title: '广告类别',
+			auth: true
+		},
+		component: () => import('@/components/system/adver/page.vue')
+	},
+	{
+		path: '/system/adver/index',
+		name: 'system_adver_index',
+		meta: {
+			title: '广告中心',
+			auth: true
+		},
+		component: () => import('@/components/system/adver/index.vue')
 
+	},
+	{
+		path: '/system/article/list',
+		name: 'system_article_list',
+		meta: {
+			title: '文章列表',
+			auth: true
+		},
+		component: () => import('@/components/system/article/list.vue')
+
+	},
+	{
+		path: '/system/article/detail',
+		name: 'system_article_detail',
+		meta: {
+			title: '文章详情',
+			auth: true
+		},
+		component: () => import('@/components/system/article/detail.vue')
+
+	},
+	{
+		path: '/system/eduction/list',
+		name: 'system_eduction_list',
+		meta: {
+			title: '课程列表',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/list.vue')
+
+	},
+	{
+		path: '/system/eduction/cate',
+		name: 'system_eduction_cate',
+		meta: {
+			title: '课程分类',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/cate.vue')
+
+	},
+	{
+		path: '/system/eduction/detail',
+		name: 'system_eduction_detail',
+		meta: {
+			title: '课程详情',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/detail.vue')
+
+	},
+	{
+		path: '/system/eduction/grlists',
+		name: 'system_eduction_grlists',
+		meta: {
+			title: '分组列表',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/grlists.vue')
+	},
+	{
+		path: '/system/eduction/addGrlists',
+		name: 'system_eduction_addGrlists',
+		meta: {
+			title: '分组详情',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/addGrlists.vue')
+	},
+	{
+		path: '/system/eduction/teachList',
+		name: 'system_eduction_teachList',
+		meta: {
+			title: '讲师列表',
+			auth: true
+		},
+		component: () => import('@/components/system/eduction/teachList.vue')
+	},
+	{
+		path: '/system/adver/upsource',
+		name: 'system_adver_upsource',
+		meta: {
+			title: '图片资源',
+			auth: true
+		},
+		component: () => import('@/components/system/adver/upsource.vue')
+
+	},
+
+	{
+		path: '/system/order/showTemplate',
+		name: 'system_order_showTemplate',
+		meta: {
+			title: '模板订单',
+			auth: true
+		},
+		component: () => import('@/components/system/order/showTemplate')
+	},
+	{
+		path: '/system/task/paytrade',
+		name: 'system_task_paytrade',
+		meta: {
+			title: '支付记录',
+			auth: true
+		},
+		component: () => import('@/components/system/task/paytrade')
+	},
+	{
+		path: '/system/signing/list',
+		name: 'system_signing_list',
+		meta: {
+			title: '预约列表',
+			auth: true
+		},
+		component: () => import('@/components/system/signing/list')
+	},
+	{
+		path: '/system/signing/lists',
+		name: 'system_signing_lists',
+		meta: {
+			title: '合同模板列表',
+			auth: true
+		},
+		component: () => import('@/components/system/signing/lists')
+	},
+	{
+		path: '/system/signing/createContract',
+		name: 'system_signing_createContract',
+		meta: {
+			title: '创建合同模板',
+			auth: true
+		},
+		component: () => import('@/components/system/signing/createContract')
+	},
 	{
-		path: '/',
-		name: "system_login2",
+		path: '/system/chat/index',
+		name: 'system_chat_index',
 		meta: {
-			title: '总用户登录'
+			title: '聊天记录',
+			auth: true
 		},
-		component: () => import('@/components/system/login/index')
-	}
+		component: () => import('@/components/system/chat/index')
+	},
+	{
+		path: '/system/forum/index',
+		name: 'system_forum_index',
+		meta: {
+			title: '发布者',
+			auth: true
+		},
+		component: () => import('@/components/system/forum/index')
+	},
+	{
+		path: '/system/forum/list',
+		name: 'system_forum_list',
+		meta: {
+			title: '贴子管理',
+			auth: true
+		},
+		component: () => import('@/components/system/forum/list')
+	},
+	{
+		path: '/system/points/list',
+		name: 'system_points_list',
+		meta: {
+			title: '积分商品',
+			auth: true
+		},
+		component: () => import('@/components/system/points/list')
+	},
+	{
+		path: '/system/goods/cate',
+		name: 'system_goods_cate',
+		meta: {
+			title: '商品分类',
+			auth: true
+		},
+		component: () => import('@/components/system/goods/cate')
+	},
+	{
+		path: '/system/goods/list',
+		name: 'system_goods_list',
+		meta: {
+			title: '商品列表',
+			auth: true
+		},
+		component: () => import('@/components/system/goods/list')
+	},
+	{
+		path: '/system/points/czlist',
+		name: 'system_points_czlist',
+		meta: {
+			title: '充值记录',
+			auth: true
+		},
+		component: () => import('@/components/system/points/czList')
+	},
+	{
+		path: '/system/points/order',
+		name: 'system_points_order',
+		meta: {
+			title: '积分订单',
+			auth: true
+		},
+		component: () => import('@/components/system/points/order')
+	},
+	{
+		path: '/system/points/bill',
+		name: 'system_points_bill',
+		meta: {
+			title: '积分流水',
+			auth: true
+		},
+		component: () => import('@/components/system/points/bill')
+	},
+	]
+},
+
+{
+	path: '/system/widget/images/index.html',
+	name: `images`,
+	meta: {
+		auth: ['admin-user-user-index'],
+		title: '上传图片'
+	},
+	component: () => import('@/components/system/uploadPictures/widgetImg')
+},
+{
+	path: '/system/login',
+	name: "system_login",
+	meta: {
+		title: '总用户登录'
+	},
+	component: () => import('@/components/system/login/index')
+},
+// {
+//   path: '/index',
+//   name: "system_index_index",
+//   meta: {
+//     title: '首页'
+//   },
+//   component: () => import('@/components/system/index/index')
+// },
+
+
+{
+	path: '/',
+	name: "system_login2",
+	meta: {
+		title: '总用户登录'
+	},
+	component: () => import('@/components/system/login/index')
+}
 
 
 ];