achao 2 years ago
parent
commit
896a08d01c

+ 1 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiPriceHisService.java

@@ -23,7 +23,7 @@ public interface IGubiPriceHisService{
 	public Boolean add(@NotNull @HttpParam(name = "gubiPriceHis", type = HttpParamType.COMMON, description = "价格历史") GubiPriceHis gubiPriceHis,
 						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
 
-	@HttpMethod(description = "列表", permission = "admin:gubi:gubiPriceHis:list",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	@HttpMethod(description = "列表")
 	public Page<GubiPriceHis> list(
 								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
 							@HttpParam(name = "orderId", type = HttpParamType.COMMON, description = "分值id") String orderId,

+ 3 - 3
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeInfoService.java

@@ -20,11 +20,11 @@ import java.util.List;
  */
 @HttpOpenApi(group = "admin.gubi.gubiTypeInfo", description = "一级分类")
 public interface IGubiTypeInfoService{
-	@HttpMethod(description = "新增", permission = "admin:gubi:gubiTypeInfo:add", permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	@HttpMethod(description = "新增")
 	public Boolean add(@NotNull @HttpParam(name = "gubiTypeInfo", type = HttpParamType.COMMON, description = "一级分类") GubiTypeInfo gubiTypeInfo,
 						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
 
-	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeInfo:list",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	@HttpMethod(description = "列表")
 	public Page<GubiTypeInfo> list(
 								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
 							@HttpParam(name = "typeName", type = HttpParamType.COMMON, description = "分类") String typeName,
@@ -39,7 +39,7 @@ public interface IGubiTypeInfoService{
 		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
 		throws ServiceException;
 
-	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeInfo:list",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	@HttpMethod(description = "列表")
 	public List<GubiTypeInfo> listInfo() throws ServiceException;
 
 	@HttpMethod(description = "删除", permission = "admin:gubi:gubiTypeInfo:delete",permissionParentName = "宠物管理", permissionName = "一级分类管理")

+ 10 - 0
unimall-admin/src/api/gubi/transaction.js

@@ -11,6 +11,16 @@ export function listTransaction(query) {
     }
   })
 }
+export function typeList(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'listInfo',
+      ...query
+    }
+  })
+}
 
 // 查询交易记录详细
 export function getTransaction(id) {

+ 62 - 0
unimall-admin/src/router/route.json

@@ -154,6 +154,68 @@
 			}
 		]
 	},
+	{
+		"redirect": "noredirect",
+		"name": "info",
+		"path": "/info",
+		"meta": {
+			"icon": "log",
+			"title": "管理"
+		},
+		"alwaysShow": true,
+		"children": [
+			{
+				"path": "info",
+				"name": "info",
+				"page": "/gubi/info",
+				"meta": {
+					"title": "一级分类",
+					"icon": "logininfor",
+					"noCache": true
+				}
+			},
+			{
+				"path": "second",
+				"name": "second",
+				"page": "/gubi/second",
+				"meta": {
+					"title": "二级分类",
+					"icon": "logininfor",
+					"noCache": true
+				}
+			},
+			{
+				"path": "three",
+				"name": "three",
+				"page": "/gubi/three",
+				"meta": {
+					"title": "三级分类",
+					"icon": "logininfor",
+					"noCache": true
+				}
+			},
+			{
+				"path": "priceHis",
+				"name": "priceHis",
+				"page": "/gubi/priceHis",
+				"meta": {
+					"title": "历史价格",
+					"icon": "logininfor",
+					"noCache": true
+				}
+			},
+			{
+				"path": "transaction",
+				"name": "transaction",
+				"page": "/gubi/transaction",
+				"meta": {
+					"title": "交易记录",
+					"icon": "logininfor",
+					"noCache": true
+				}
+			}
+		]
+	},
 	{
 		"redirect": "noredirect",
 		"path": "/profile",

+ 0 - 1
unimall-admin/src/utils/index.js

@@ -36,7 +36,6 @@ export function parseTime(time, cFormat) {
 }
 
 export function formatGmt(time) {
-  debugger
   const d = new Date(time)
   return (
     d.getMonth() +

+ 16 - 16
unimall-admin/src/views/gubi/info/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+    <!-- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
       <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
@@ -80,7 +80,7 @@
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
-    </el-form>
+    </el-form> -->
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -112,7 +112,7 @@
           v-permission="['gubi:info:remove']"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           icon="el-icon-download"
@@ -120,18 +120,18 @@
           @click="handleExport"
           v-permission="['gubi:info:export']"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
     </el-row>
 
     <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
+      <!-- <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="companyId" />
-      <el-table-column label="分类" align="center" prop="typeName" />
+      <el-table-column label="" align="center" prop="companyId" /> -->
+      <el-table-column label="名称" align="center" prop="typeName" />
       <el-table-column label="排序" align="center" prop="postion" />
-      <el-table-column label="状态" align="center" prop="status" />
-      <el-table-column label="0:否" align="center" prop="deleteFlag" />
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+      <!-- <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="0:否" align="center" prop="deleteFlag" /> -->
+      <!-- <el-table-column label="" align="center" prop="gmtCreate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtCreate) }}</span>
         </template>
@@ -142,7 +142,7 @@
         </template>
       </el-table-column>
       <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="" align="center" prop="adminId" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -174,16 +174,16 @@
     <!-- 添加或修改一级分类对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="companyId">
+        <!-- <el-form-item label="" prop="companyId">
           <el-input v-model="form.companyId" placeholder="请输入" />
-        </el-form-item>
-        <el-form-item label="分类" prop="typeName">
+        </el-form-item> -->
+        <el-form-item label="分类名称" prop="typeName">
           <el-input v-model="form.typeName" placeholder="请输入分类" />
         </el-form-item>
         <el-form-item label="排序" prop="postion">
           <el-input v-model="form.postion" placeholder="请输入排序" />
         </el-form-item>
-        <el-form-item label="状态">
+        <!-- <el-form-item label="状态">
           <el-radio-group v-model="form.status">
             <el-radio label="1">请选择字典生成</el-radio>
           </el-radio-group>
@@ -212,7 +212,7 @@
         </el-form-item>
         <el-form-item label="" prop="adminId">
           <el-input v-model="form.adminId" placeholder="请输入" />
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>

+ 78 - 22
unimall-admin/src/views/gubi/priceHis/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
-      <el-form-item label="" prop="companyId">
+      <!-- <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
           placeholder="请输入"
@@ -9,8 +9,8 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-      <el-form-item label="分值id" prop="orderId">
+      </el-form-item> -->
+      <!-- <el-form-item label="分值id" prop="orderId">
         <el-input
           v-model="queryParams.orderId"
           placeholder="请输入分值id"
@@ -18,7 +18,7 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="时间" prop="collection">
         <el-date-picker clearable size="small" style="width: 200px"
           v-model="queryParams.collection"
@@ -35,8 +35,8 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-        <el-form-item label="状态" prop="status">
+     </el-form-item>
+         <!-- <el-form-item label="状态" prop="status">
         <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
           <el-option label="请选择字典生成" value="" />
         </el-select>
@@ -83,7 +83,7 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -133,18 +133,18 @@
 
     <el-table v-loading="loading" :data="priceHisList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="companyId" />
-      <el-table-column label="分值id" align="center" prop="orderId" />
+      <!-- <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" /> -->
+      <!-- <el-table-column label="分值id" align="center" prop="orderId" /> -->
       <el-table-column label="时间" align="center" prop="collection" width="180">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.collection) }}</span>
+          <span>{{ parseTime(scope.row.collection).split(" ")[0] }}</span>
         </template>
       </el-table-column>
       <el-table-column label="价钱" align="center" prop="price" />
-      <el-table-column label="状态" align="center" prop="status" />
-      <el-table-column label="0:否" align="center" prop="deleteFlag" />
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+      <!-- <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="0:否" align="center" prop="deleteFlag" /> -->
+      <!-- <el-table-column label="" align="center" prop="gmtCreate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtCreate) }}</span>
         </template>
@@ -155,7 +155,7 @@
         </template>
       </el-table-column>
       <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="" align="center" prop="adminId" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -186,25 +186,29 @@
 
     <!-- 添加或修改价格历史对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px">
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="companyId">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <!-- <el-form-item label="" prop="companyId">
           <el-input v-model="form.companyId" placeholder="请输入" />
         </el-form-item>
         <el-form-item label="分值id" prop="orderId">
           <el-input v-model="form.orderId" placeholder="请输入分值id" />
+        </el-form-item> -->
+        <el-form-item label="分值" prop="orderId">
+          <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div>
+        
         </el-form-item>
         <el-form-item label="时间" prop="collection">
-          <el-date-picker clearable size="small" style="width: 200px"
+          <el-date-picker clearable size="small" style="width: 100%"
             v-model="form.collection"
             type="date"
             value-format="yyyy-MM-dd"
             placeholder="选择时间">
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="价钱" prop="price">
+        <el-form-item label="价钱(万元)" prop="price">
           <el-input v-model="form.price" placeholder="请输入价钱" />
         </el-form-item>
-        <el-form-item label="状态">
+        <!-- <el-form-item label="状态">
           <el-radio-group v-model="form.status">
             <el-radio label="1">请选择字典生成</el-radio>
           </el-radio-group>
@@ -233,22 +237,38 @@
         </el-form-item>
         <el-form-item label="" prop="adminId">
           <el-input v-model="form.adminId" placeholder="请输入" />
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="分值" :visible.sync="dialogFormVisible">
+      <el-form :model="form">
+        <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
+        <el-button type="primary" @click="typeConfirm">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { listPriceHis, getPriceHis, delPriceHis, addPriceHis, updatePriceHis, exportPriceHis } from "@/api/gubi/priceHis";
-
+import { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction, typeList } from "@/api/gubi/transaction";
 export default {
   data() {
     return {
+      defaultProps: {
+        children: 'children',
+        label: 'typeName'
+      },
+      data: [],
+      dialogFormVisible: false,
+      orderName: "",
       // 遮罩层
       loading: true,
       // 选中数组
@@ -293,6 +313,18 @@ export default {
     this.getList();
   },
   methods: {
+    handleNodeClick(data) {
+      console.log(data);
+      this.form.orderId = data.id
+      this.orderName = data.typeName
+      this.urlPath = data.urlPath.split(",")
+    },
+    typeConfirm() {
+      this.dialogFormVisible = false
+    },
+    selectType() {
+      this.dialogFormVisible = true
+    },
     /** 查询价格历史列表 */
     getList() {
       this.loading = true;
@@ -301,6 +333,29 @@ export default {
         this.total = response.data.data.count
         this.loading = false;
       });
+      typeList().then(response => {
+        this.makeData(response.data.data)
+      });
+    },
+    makeData(val) {
+      for (let i = 0; i < val.length; i++) {
+        if (val[i].children) {
+          for (let j = 0; j < val[i].children.length; j++) {
+            let _obj = val[i].children[j]
+            _obj.typeName = val[i].children[j].secondName
+            val[i].children[j] = _obj
+            if (val[i].children[j].children) {
+              for (let k = 0; k < val[i].children[j].children.length; k++) {
+                let _obj1 = val[i].children[j].children[k]
+                _obj1.typeName = val[i].children[j].children[k].typeId
+                val[i].children[j].children[k] = _obj1
+              }
+            }
+          }
+        }
+      }
+      this.data = val
+      console.log(this.data)
     },
     // 取消按钮
     cancel() {
@@ -352,6 +407,7 @@ export default {
       const id = row.id || this.ids.join(',')
       getPriceHis(id).then(response => {
         this.form = response.data.data
+        this.form.collection = new Date(response.data.data.collection).toLocaleString().replace(/\//g, '-').split(" ")[0]
         this.open = true;
         this.title = "修改价格历史";
       });

+ 140 - 31
unimall-admin/src/views/gubi/second/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+    <!-- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
       <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
@@ -89,7 +89,7 @@
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
-    </el-form>
+    </el-form> -->
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -133,16 +133,25 @@
     </el-row>
 
     <el-table v-loading="loading" :data="secondList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
+      <!-- <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="companyId" />
-      <el-table-column label="分类id" align="center" prop="typeId" />
-      <el-table-column label="二级分类型" align="center" prop="secondName" />
-      <el-table-column label="排序" align="center" prop="postion" />
-      <el-table-column label="状态" align="center" prop="status" />
-      <el-table-column label="附件" align="center" prop="urlPath" />
-      <el-table-column label="0:否" align="center" prop="deleteFlag" />
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+      <el-table-column label="" align="center" prop="companyId" /> -->
+      <!-- <el-table-column label="一级分类" align="center" prop="typeId" /> -->
+      <el-table-column label="二级分名称" align="center" prop="secondName" />
+      <!-- <el-table-column label="排序" align="center" prop="postion" /> -->
+      <!-- <el-table-column label="状态" align="center" prop="status" /> -->
+      <el-table-column 
+        align="center" 
+        property="urlPath" 
+        label="图片">
+        <template slot-scope="scope">
+          <img v-for="item in scope.row.urlPath"
+            :src="item" 
+            width="40" >
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="0:否" align="center" prop="deleteFlag" /> -->
+      <!-- <el-table-column label="" align="center" prop="gmtCreate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtCreate) }}</span>
         </template>
@@ -153,7 +162,7 @@
         </template>
       </el-table-column>
       <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="" align="center" prop="adminId" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -185,30 +194,50 @@
     <!-- 添加或修改二级分类对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="companyId">
+        <!-- <el-form-item label="" prop="companyId">
           <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item> -->
+        <el-form-item label="一级分类" prop="typeId">
+          <!-- <el-input v-model="form.typeId" placeholder="请输入分类id" /> -->
+          <el-select v-model="form.typeId" clearable style="width: 100%" class="filter-item" placeholder="请选择一级分类" >
+            <el-option v-for="(item,index) in infoList" :key="index" :label="item.typeName" :value="item.id" />
+          </el-select>
         </el-form-item>
-        <el-form-item label="分类id" prop="typeId">
-          <el-input v-model="form.typeId" placeholder="请输入分类id" />
-        </el-form-item>
-        <el-form-item label="二级分类型" prop="secondName">
-          <el-input v-model="form.secondName" placeholder="请输入二级分类型" />
+        
+        <el-form-item label="分类名称" prop="secondName">
+          <el-input v-model="form.secondName" placeholder="请输入二级分类" />
         </el-form-item>
         <el-form-item label="排序" prop="postion">
           <el-input v-model="form.postion" placeholder="请输入排序" />
         </el-form-item>
-        <el-form-item label="状态">
+        <!-- <el-form-item label="状态">
           <el-radio-group v-model="form.status">
             <el-radio label="1">请选择字典生成</el-radio>
           </el-radio-group>
-        </el-form-item>
-        <el-form-item label="附件" prop="urlPath">
+        </el-form-item> -->
+        <!-- <el-form-item label="图片" prop="urlPath">
           <el-input v-model="form.urlPath" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="0:否" prop="deleteFlag">
+        </el-form-item> -->
+        <el-form-item label="类目图片" prop="picUrl">
+          <el-upload
+            :action="uploadPath"
+            :headers="headers"
+            :limit="2"
+            :file-list="imgsFileList"
+            :on-exceed="uploadOverrun"
+            :on-success="handleimgsUrl"
+            :on-remove="handleRemove"
+            multiple
+            accept=".jpg, .jpeg, .png, .gif"
+            list-type="picture-card"
+          >
+            <i class="el-icon-plus" />
+          </el-upload>
+        </el-form-item> 
+        <!-- <el-form-item label="0:否" prop="deleteFlag">
           <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
-        </el-form-item>
-        <el-form-item label="" prop="gmtCreate">
+        </el-form-item> -->
+        <!-- <el-form-item label="" prop="gmtCreate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.gmtCreate"
             type="date"
@@ -229,7 +258,7 @@
         </el-form-item>
         <el-form-item label="" prop="adminId">
           <el-input v-model="form.adminId" placeholder="请输入" />
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -241,10 +270,16 @@
 
 <script>
 import { listSecond, getSecond, delSecond, addSecond, updateSecond, exportSecond } from "@/api/gubi/second";
-
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo } from "@/api/gubi/info";
+import { uploadPath } from '@/api/storage'
+import { getToken } from '@/utils/auth'
 export default {
   data() {
     return {
+      imgsFileList: [],
+      uploadPath,
+      listQuery:{},
+      infoList:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -281,20 +316,82 @@ export default {
       form: {},
       // 表单校验
       rules: {
-        deleteFlag: [
-          { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
-        ],      }
+        typeId: [
+          { required: true, message: "一级分类不能为空!", trigger: "blur" }
+        ],
+        secondName: [
+          { required: true, message: "二分类不能为空!", trigger: "blur" }
+        ],   
+        postion: [
+          { required: true, message: "排序分类不能为空!", trigger: "blur" }
+        ]        
+      }
     };
   },
+  computed: {
+    headers() {
+      return {
+        accessToken: getToken()
+      }
+    }
+  },
   created() {
     this.getList();
   },
   methods: {
+    uploadOverrun: function() {
+      this.$message({
+        type: 'error',
+        message: '上传文件个数超出限制!最多上传2张图片!'
+      })
+    },
+    handleimgsUrl(response, file, fileList) {
+      if (response.errno === 200) {
+        this.form.urlPath.push(response.url)
+      }
+    },
+    handleRemove: function(file, fileList) {
+      for (var i = 0; i < this.form.urlPath.length; i++) {
+        // 这里存在两种情况
+        // 1. 如果所删除图片是刚刚上传的图片,那么图片地址是file.response.url
+        //    此时的file.url虽然存在,但是是本机地址,而不是远程地址。
+        // 2. 如果所删除图片是后台返回的已有图片,那么图片地址是file.url
+        var url
+        if (file.response === undefined) {
+          url = file.url
+        } else {
+          url = file.response.url
+        }
+
+        if (this.form.urlPath[i] === url) {
+          this.form.urlPath.splice(i, 1)
+        }
+      }
+      if (this.form.urlPath.length > 0) {
+        this.form.pictureUrl = this.form.urlPath[0]
+      }
+    },
     /** 查询二级分类列表 */
     getList() {
+      let that = this
       this.loading = true;
+      listInfo().then(response => {
+        this.infoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
       listSecond(this.queryParams).then(response => {
         this.secondList = response.data.data.items
+        
+        for(let i =0;i<that.secondList.length;i++){
+          if(that.secondList[i].urlPath){
+            that.secondList[i].urlPath = that.secondList[i].urlPath.split(',')
+        }else{
+          that.secondList[i].urlPath=[]
+        }
+        }
+        console.log(that.secondList)
+      
         this.total = response.data.data.count
         this.loading = false;
       });
@@ -313,7 +410,7 @@ export default {
         secondName: undefined,
         postion: undefined,
         status: "0",
-        urlPath: undefined,
+        urlPath: [],
         deleteFlag: undefined,
         gmtCreate: undefined,
         gmtUpdate: undefined,
@@ -347,17 +444,28 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.imgsFileList = []
       const id = row.id || this.ids.join(',')
       getSecond(id).then(response => {
+        response.data.data.urlPath = response.data.data.urlPath.split(",")
+        for (let i = 0; i < response.data.data.urlPath.length; i++) {
+          this.imgsFileList.push({
+            url: response.data.data.urlPath[i]
+          })
+        }
         this.form = response.data.data
         this.open = true;
         this.title = "修改二级分类";
+        console.log()
+        
+        
       });
     },
     /** 提交按钮 */
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.form.urlPath = this.form.urlPath.toString()
           if (this.form.id != undefined) {
             updateSecond(this.form).then(response => {
               if (response.data) {
@@ -369,6 +477,7 @@ export default {
               }
             });
           } else {
+            
             addSecond(this.form).then(response => {
               if (response.data) {
                 this.msgSuccess("新增成功");

+ 133 - 34
unimall-admin/src/views/gubi/three/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+    <!-- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
       <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
@@ -178,7 +178,7 @@
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
-    </el-form>
+    </el-form> -->
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -223,40 +223,50 @@
 
     <el-table v-loading="loading" :data="threeList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="companyId" />
-      <el-table-column label="分类id" align="center" prop="typeId" />
-      <el-table-column label="二级分类id" align="center" prop="secondId" />
+      <!-- <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" /> -->
+      <el-table-column label="系列" align="center" prop="series" />
+      <el-table-column label="分类名称" align="center" prop="typeId" />
       <el-table-column label="品名" align="center" prop="product" />
       <el-table-column label="官网编号" align="center" prop="number" />
       <el-table-column label="年份" align="center" prop="year" />
       <el-table-column label="面值" align="center" prop="face" />
       <el-table-column label="版别" align="center" prop="edition" />
       <el-table-column label="地区" align="center" prop="region" />
-      <el-table-column label="分值等级" align="center" prop="grade" />
+      <el-table-column label="分值/等级" align="center" prop="grade" />
+      <el-table-column label="同分数量/增量" align="center" prop="tongFen" />
       <el-table-column label="高分数量" align="center" prop="highScores" />
-      <el-table-column label="收集时间" align="center" prop="collection" width="180">
+      <el-table-column label="收集时间" align="center" prop="collection">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.collection) }}</span>
         </template>
       </el-table-column>
       <el-table-column label="详细介绍" align="center" prop="introduction" />
-      <el-table-column label="排序" align="center" prop="postion" />
-      <el-table-column label="状态" align="center" prop="status" />
-      <el-table-column label="附件" align="center" prop="urlPath" />
-      <el-table-column label="0:否" align="center" prop="deleteFlag" />
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+      <!-- <el-table-column label="排序" align="center" prop="postion" />
+      <el-table-column label="状态" align="center" prop="status" /> -->
+      <el-table-column 
+      align="center" 
+      property="urlPath" 
+      label="图片">
+      <template slot-scope="scope">
+        <img v-for="item in scope.row.urlPath"
+          :src="item" 
+          width="40" >
+      </template>
+    </el-table-column>
+      <!-- <el-table-column label="0:否" align="center" prop="deleteFlag" /> -->
+      <!-- <el-table-column label="" align="center" prop="gmtCreate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtCreate) }}</span>
         </template>
-      </el-table-column>
-      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+      </el-table-column> -->
+      <!-- <el-table-column label="" align="center" prop="gmtUpdate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
         </template>
-      </el-table-column>
-      <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="" align="center" prop="adminId" />
+      </el-table-column> -->
+      <!-- <el-table-column label="" align="center" prop="userId" />
+      <el-table-column label="" align="center" prop="adminId" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -288,14 +298,20 @@
     <!-- 添加或修改分值信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="companyId">
+        <!-- <el-form-item label="" prop="companyId">
           <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item> -->
+        <el-form-item label="二级分类" prop="typeId">
+          <!-- <el-input v-model="form.typeId" placeholder="请输入分类id" /> -->
+          <el-select v-model="form.secondId" clearable style="width: 100%" class="filter-item" placeholder="请选择二级分类" >
+            <el-option v-for="(item,index) in secondList" :key="index" :label="item.secondName" :value="item.id" />
+          </el-select>
         </el-form-item>
-        <el-form-item label="分类id" prop="typeId">
-          <el-input v-model="form.typeId" placeholder="请输入分类id" />
+        <el-form-item label="分类名称" prop="typeId">
+          <el-input v-model="form.typeId" placeholder="请输入分类名称" />
         </el-form-item>
-        <el-form-item label="二级分类id" prop="secondId">
-          <el-input v-model="form.secondId" placeholder="请输入二级分类id" />
+        <el-form-item label="系列" prop="series">
+          <el-input v-model="form.series" placeholder="请输入系列" />
         </el-form-item>
         <el-form-item label="品名" prop="product">
           <el-input v-model="form.product" placeholder="请输入品名" />
@@ -318,11 +334,14 @@
         <el-form-item label="分值等级" prop="grade">
           <el-input v-model="form.grade" placeholder="请输入分值等级" />
         </el-form-item>
+        <el-form-item label="同分数量/增量" prop="tongFen">
+          <el-input v-model="form.tongFen" placeholder="同分数量/增量" />
+        </el-form-item>
         <el-form-item label="高分数量" prop="highScores">
           <el-input v-model="form.highScores" placeholder="请输入高分数量" />
         </el-form-item>
         <el-form-item label="收集时间" prop="collection">
-          <el-date-picker clearable size="small" style="width: 200px"
+          <el-date-picker clearable size="small" style="width: 100%"
             v-model="form.collection"
             type="date"
             value-format="yyyy-MM-dd"
@@ -332,18 +351,31 @@
         <el-form-item label="详细介绍" prop="introduction">
           <el-input v-model="form.introduction" placeholder="请输入详细介绍" />
         </el-form-item>
-        <el-form-item label="排序" prop="postion">
+        <!-- <el-form-item label="排序" prop="postion">
           <el-input v-model="form.postion" placeholder="请输入排序" />
         </el-form-item>
         <el-form-item label="状态">
           <el-radio-group v-model="form.status">
             <el-radio label="1">请选择字典生成</el-radio>
           </el-radio-group>
-        </el-form-item>
-        <el-form-item label="附件" prop="urlPath">
-          <el-input v-model="form.urlPath" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="0:否" prop="deleteFlag">
+        </el-form-item> -->
+        <el-form-item label="类目图片" prop="picUrl">
+          <el-upload
+            :action="uploadPath"
+            :headers="headers"
+            :limit="2"
+            :file-list="imgsFileList"
+            :on-exceed="uploadOverrun"
+            :on-success="handleimgsUrl"
+            :on-remove="handleRemove"
+            multiple
+            accept=".jpg, .jpeg, .png, .gif"
+            list-type="picture-card"
+          >
+            <i class="el-icon-plus" />
+          </el-upload>
+        </el-form-item> 
+        <!-- <el-form-item label="0:否" prop="deleteFlag">
           <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
         </el-form-item>
         <el-form-item label="" prop="gmtCreate">
@@ -367,7 +399,7 @@
         </el-form-item>
         <el-form-item label="" prop="adminId">
           <el-input v-model="form.adminId" placeholder="请输入" />
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -379,10 +411,15 @@
 
 <script>
 import { listThree, getThree, delThree, addThree, updateThree, exportThree } from "@/api/gubi/three";
-
+import { listSecond, getSecond, delSecond, addSecond, updateSecond, exportSecond } from "@/api/gubi/second";
+import { uploadPath } from '@/api/storage'
+import { getToken } from '@/utils/auth'
 export default {
   data() {
     return {
+      imgsFileList: [],
+      uploadPath,
+      secondList:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -418,7 +455,7 @@ export default {
         introduction: undefined,
         postion: undefined,
         status: undefined,
-        urlPath: undefined,
+        urlPath:undefined,
         deleteFlag: undefined,
         gmtCreate: undefined,
         gmtUpdate: undefined,
@@ -434,18 +471,77 @@ export default {
         ],      }
     };
   },
+  computed: {
+    headers() {
+      return {
+        accessToken: getToken()
+      }
+    }
+  },
   created() {
     this.getList();
   },
   methods: {
+    uploadOverrun: function() {
+      this.$message({
+        type: 'error',
+        message: '上传文件个数超出限制!最多上传2张图片!'
+      })
+    },
+    handleimgsUrl(response, file, fileList) {
+      if (response.errno === 200) {
+        this.form.urlPath.push(response.url)
+      }
+    },
+    handleRemove: function(file, fileList) {
+      for (var i = 0; i < this.form.urlPath.length; i++) {
+        // 这里存在两种情况
+        // 1. 如果所删除图片是刚刚上传的图片,那么图片地址是file.response.url
+        //    此时的file.url虽然存在,但是是本机地址,而不是远程地址。
+        // 2. 如果所删除图片是后台返回的已有图片,那么图片地址是file.url
+        var url
+        if (file.response === undefined) {
+          url = file.url
+        } else {
+          url = file.response.url
+        }
+
+        if (this.form.urlPath[i] === url) {
+          this.form.urlPath.splice(i, 1)
+        }
+      }
+      if (this.form.urlPath.length > 0) {
+        // this.form.pictureUrl = this.form.urlPath[0]
+      }
+    },
     /** 查询分值信息列表 */
     getList() {
       this.loading = true;
+      listSecond().then(response => {
+        this.secondList = response.data.data.items
+        
+        for(let i =0;i<this.secondList.length;i++){
+          if(this.secondList[i].urlPath){
+            this.secondList[i].urlPath = this.secondList[i].urlPath.split(',')
+        }else{
+          this.secondList[i].urlPath=[]
+        }
+        }
+        console.log(this.secondList)
+      });
       listThree(this.queryParams).then(response => {
         this.threeList = response.data.data.items
+        for(let i =0;i<this.threeList.length;i++){
+          if(this.threeList[i].urlPath){
+            this.threeList[i].urlPath = this.threeList[i].urlPath.split(',')
+        }else{
+          this.threeList[i].urlPath=[]
+        }
+        }
         this.total = response.data.data.count
         this.loading = false;
       });
+
     },
     // 取消按钮
     cancel() {
@@ -471,7 +567,7 @@ export default {
         introduction: undefined,
         postion: undefined,
         status: "0",
-        urlPath: undefined,
+        urlPath: [],
         deleteFlag: undefined,
         gmtCreate: undefined,
         gmtUpdate: undefined,
@@ -505,6 +601,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.imgsFileList = []
       const id = row.id || this.ids.join(',')
       getThree(id).then(response => {
         this.form = response.data.data
@@ -516,6 +613,7 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.form.urlPath = this.form.urlPath.toString()
           if (this.form.id != undefined) {
             updateThree(this.form).then(response => {
               if (response.data) {
@@ -527,6 +625,7 @@ export default {
               }
             });
           } else {
+           
             addThree(this.form).then(response => {
               if (response.data) {
                 this.msgSuccess("新增成功");

+ 170 - 132
unimall-admin/src/views/gubi/transaction/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
-      <el-form-item label="" prop="companyId">
+      <!-- <el-form-item label="" prop="companyId">
         <el-input
           v-model="queryParams.companyId"
           placeholder="请输入"
@@ -18,48 +18,39 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="编号" prop="number">
-        <el-input
-          v-model="queryParams.number"
-          placeholder="请输入编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.number" placeholder="请输入编号" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="分值等级" prop="grade">
+      <!-- <el-form-item label="分值" prop="grade">
         <el-input
           v-model="queryParams.grade"
-          placeholder="请输入分值等级"
+          placeholder="请输入分值"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="时间" prop="collection">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.collection"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择时间">
+        <el-date-picker clearable size="small" style="width: 200px" v-model="queryParams.collection" type="date"
+          value-format="yyyy-MM-dd" placeholder="选择时间">
         </el-date-picker>
       </el-form-item>
       <el-form-item label="价钱" prop="price">
-        <el-input
-          v-model="queryParams.price"
-          placeholder="请输入价钱"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.price" placeholder="请输入价钱" clearable size="small"
+          @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-input v-model="queryParams.price" placeholder="请输入状态" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
-        <el-form-item label="状态" prop="status">
+      <!-- <el-form-item label="状态" prop="status">
         <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
           <el-option label="请选择字典生成" value="" />
         </el-select>
-      </el-form-item>
-      <el-form-item label="0:否" prop="deleteFlag">
+      </el-form-item> -->
+      <!-- <el-form-item label="0:否" prop="deleteFlag">
         <el-input
           v-model="queryParams.deleteFlag"
           placeholder="请输入0:否"
@@ -67,16 +58,16 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-      <el-form-item label="" prop="gmtCreate">
+      </el-form-item> -->
+      <!-- <el-form-item label="" prop="gmtCreate">
         <el-date-picker clearable size="small" style="width: 200px"
           v-model="queryParams.gmtCreate"
           type="date"
           value-format="yyyy-MM-dd"
           placeholder="选择">
         </el-date-picker>
-      </el-form-item>
-      <el-form-item label="" prop="gmtUpdate">
+      </el-form-item> -->
+      <!-- <el-form-item label="" prop="gmtUpdate">
         <el-date-picker clearable size="small" style="width: 200px"
           v-model="queryParams.gmtUpdate"
           type="date"
@@ -101,7 +92,7 @@
           size="small"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -110,62 +101,44 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-permission="['gubi:transaction:add']"
-        >新增</el-button>
+        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
+          v-permission="['gubi:transaction:add']">新增</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-permission="['gubi:transaction:edit']"
-        >修改</el-button>
+        <el-button type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          v-permission="['gubi:transaction:edit']">修改</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-permission="['gubi:transaction:remove']"
-        >删除</el-button>
+        <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          v-permission="['gubi:transaction:remove']">删除</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-permission="['gubi:transaction:export']"
-        >导出</el-button>
+        <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport"
+          v-permission="['gubi:transaction:export']">导出</el-button>
       </el-col>
     </el-row>
 
     <el-table v-loading="loading" :data="transactionList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="companyId" />
-      <el-table-column label="分值id" align="center" prop="orderId" />
+      <!-- <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" /> -->
+      <!-- <el-table-column label="分值id" align="center" prop="orderId" /> -->
       <el-table-column label="编号" align="center" prop="number" />
-      <el-table-column label="分值等级" align="center" prop="grade" />
+      <el-table-column label="分值" align="center" prop="grade" />
       <el-table-column label="时间" align="center" prop="collection" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.collection) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="价钱" align="center" prop="price" />
+      <el-table-column label="价钱(万元)" align="center" prop="price" width="120" />
       <el-table-column label="状态" align="center" prop="status" />
-      <el-table-column label="附件" align="center" prop="urlPath" />
-      <el-table-column label="0:否" align="center" prop="deleteFlag" />
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+      <el-table-column align="center" property="urlPath" label="图片">
+        <template slot-scope="scope">
+          <img v-for="item in scope.row.urlPath" :src="item" width="40">
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="0:否" align="center" prop="deleteFlag" /> -->
+      <!-- <el-table-column label="" align="center" prop="gmtCreate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.gmtCreate) }}</span>
         </template>
@@ -176,43 +149,35 @@
         </template>
       </el-table-column>
       <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="" align="center" prop="adminId" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-permission="['gubi:transaction:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-permission="['gubi:transaction:remove']"
-          >删除</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-permission="['gubi:transaction:edit']">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-permission="['gubi:transaction:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
 
     <!-- 添加或修改交易记录对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="companyId">
+        <!-- <el-form-item label="" prop="companyId">
           <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item> -->
+        <el-form-item label="分值" prop="orderId">
+          <div @click="selectType">{{ orderName ? orderName : '选择分值' }}</div>
+          <!-- <el-select v-model="form.orderId" clearable style="width: 100%" class="filter-item" placeholder="请选择分值" >
+            <el-option v-for="(item,index) in threeList" :key="index" :label="item.typeId" :value="item.id" />
+          </el-select> -->
+          <!-- <el-input v-model="form.orderId" placeholder="请输入分值id" /> -->
         </el-form-item>
-        <el-form-item label="分值id" prop="orderId">
-          <el-input v-model="form.orderId" placeholder="请输入分值id" />
+        <el-form-item label="分值图片" prop="number">
+          <img v-for="item in urlPath" :src="item" width="40">
         </el-form-item>
         <el-form-item label="编号" prop="number">
           <el-input v-model="form.number" placeholder="请输入编号" />
@@ -221,28 +186,23 @@
           <el-input v-model="form.grade" placeholder="请输入分值等级" />
         </el-form-item>
         <el-form-item label="时间" prop="collection">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.collection"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择时间">
+          <el-date-picker clearable size="small" style="width: 200px" v-model="form.collection" type="date"
+            value-format="yyyy-MM-dd" placeholder="选择时间">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="价钱" prop="price">
           <el-input v-model="form.price" placeholder="请输入价钱" />
         </el-form-item>
         <el-form-item label="状态">
-          <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
+          <el-input v-model="form.status" placeholder="请输入状态" />
         </el-form-item>
-        <el-form-item label="附件" prop="urlPath">
+        <!-- <el-form-item label="附件" prop="urlPath">
           <el-input v-model="form.urlPath" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="0:否" prop="deleteFlag">
+        </el-form-item> -->
+        <!-- <el-form-item label="0:否" prop="deleteFlag">
           <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
-        </el-form-item>
-        <el-form-item label="" prop="gmtCreate">
+        </el-form-item> -->
+        <!-- <el-form-item label="" prop="gmtCreate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.gmtCreate"
             type="date"
@@ -263,22 +223,39 @@
         </el-form-item>
         <el-form-item label="" prop="adminId">
           <el-input v-model="form.adminId" placeholder="请输入" />
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="分值" :visible.sync="dialogFormVisible">
+      <el-form :model="form">
+        <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
+        <el-button type="primary" @click="typeConfirm">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction } from "@/api/gubi/transaction";
-
+import { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction, typeList } from "@/api/gubi/transaction";
+import { listThree, getThree, delThree, addThree, updateThree, exportThree } from "@/api/gubi/three";
 export default {
   data() {
     return {
+      data: [],
+      newList: [],
+      defaultProps: {
+        children: 'children',
+        label: 'typeName'
+      },
+      formLabelWidth: '120px',
+      dialogFormVisible: false,
       // 遮罩层
       loading: true,
       // 选中数组
@@ -291,6 +268,7 @@ export default {
       total: 0,
       // 交易记录表格数据
       transactionList: [],
+      threeList: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -315,25 +293,82 @@ export default {
       },
       // 表单参数
       form: {},
+      orderName: "",
+      urlPath: [],
       // 表单校验
       rules: {
         deleteFlag: [
           { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
-        ],      }
+        ],
+      }
     };
   },
   created() {
     this.getList();
   },
   methods: {
+    handleNodeClick(data) {
+      console.log(data);
+      this.form.orderId = data.id
+      this.orderName = data.typeName
+      this.urlPath = data.urlPath.split(",")
+    },
+    typeConfirm() {
+      this.dialogFormVisible = false
+    },
+    selectType() {
+      this.dialogFormVisible = true
+    },
     /** 查询交易记录列表 */
     getList() {
       this.loading = true;
       listTransaction(this.queryParams).then(response => {
         this.transactionList = response.data.data.items
+        for (let i = 0; i < this.transactionList.length; i++) {
+          if (this.transactionList[i].urlPath) {
+            this.transactionList[i].urlPath = this.transactionList[i].urlPath.split(',')
+          } else {
+            this.transactionList[i].urlPath = []
+          }
+        }
         this.total = response.data.data.count
         this.loading = false;
       });
+      typeList().then(response => {
+        this.makeData(response.data.data)
+
+        // this.threeList = response.data.data.items
+        // for(let i =0;i<this.threeList.length;i++){
+        //   if(this.threeList[i].urlPath){
+        //     this.threeList[i].urlPath = this.threeList[i].urlPath.split(',')
+        // }else{
+        //   this.threeList[i].urlPath=[]
+        // }
+        // }
+        // this.total = response.data.data.count
+        // this.loading = false;
+      });
+
+    },
+    makeData(val) {
+      for (let i = 0; i < val.length; i++) {
+        if (val[i].children) {
+          for (let j = 0; j < val[i].children.length; j++) {
+            let _obj = val[i].children[j]
+            _obj.typeName = val[i].children[j].secondName
+            val[i].children[j] = _obj
+            if (val[i].children[j].children) {
+              for (let k = 0; k < val[i].children[j].children.length; k++) {
+                let _obj1 = val[i].children[j].children[k]
+                _obj1.typeName = val[i].children[j].children[k].typeId
+                val[i].children[j].children[k] = _obj1
+              }
+            }
+          }
+        }
+      }
+      this.data = val
+      console.log(this.data)
     },
     // 取消按钮
     cancel() {
@@ -373,7 +408,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!=1
+      this.single = selection.length != 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
@@ -385,6 +420,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.imgsFileList = []
       const id = row.id || this.ids.join(',')
       getTransaction(id).then(response => {
         this.form = response.data.data
@@ -393,9 +429,10 @@ export default {
       });
     },
     /** 提交按钮 */
-    submitForm: function() {
+    submitForm: function () {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.form.urlPath = this.urlPath.toString()
           if (this.form.id != undefined) {
             updateTransaction(this.form).then(response => {
               if (response.data) {
@@ -407,6 +444,7 @@ export default {
               }
             });
           } else {
+
             addTransaction(this.form).then(response => {
               if (response.data) {
                 this.msgSuccess("新增成功");
@@ -424,28 +462,28 @@ export default {
     handleDelete(row) {
       const ids = row.id || this.ids.join(',')
       this.$confirm('是否确认删除交易记录编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delTransaction(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(function() {});
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return delTransaction(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      }).catch(function () { });
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
       this.$confirm('是否确认导出所有交易记录数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportTransaction(queryParams);
-        }).then(response => {
-          this.download(response.data.data);
-        }).catch(function() {});
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return exportTransaction(queryParams);
+      }).then(response => {
+        this.download(response.data.data);
+      }).catch(function () { });
     }
   }
 };