Ver código fonte

大屏代码提交

user5 1 ano atrás
pai
commit
dd940a4644

+ 533 - 0
public/datav/config.js

@@ -1834,6 +1834,539 @@ window.$website = {
 			],
 		},
 		{
+			label: "datav例子",
+			icon: "icon-datav",
+			children: [
+				{
+					label: "滚动排名",
+					option: {
+						name: "滚动排名",
+						title: "滚动排名",
+						icon: "icon-datav",
+						img: "/datav/img/assets/table1.gif",
+						dataType: 0,
+						data: [
+							{
+								name: "周口",
+								value: 55,
+							},
+							{
+								name: "南阳",
+								value: 120,
+							},
+							{
+								name: "西峡",
+								value: 78,
+							},
+							{
+								name: "驻马店",
+								value: 66,
+							},
+							{
+								name: "新乡",
+								value: 80,
+							},
+							{
+								name: "信阳",
+								value: 45,
+							},
+							{
+								name: "漯河",
+								value: 29,
+							},
+						],
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n\t    data: data,\n      //carousel: 'page',\n      valueFormatter ({ value }) {\n        return value+'单位'\n      }\n\t  }\n  }\n}",
+						component: {
+							width: 652.35,
+							height: 248.45,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-scroll-ranking-board",
+						},
+					},
+				},
+				{
+					label: "胶囊排名",
+					option: {
+						name: "胶囊排名",
+						title: "胶囊排名",
+						icon: "icon-datav",
+						img: "/datav/img/assets/table3.png",
+						dataType: 0,
+						data: [
+							{
+								name: "周口",
+								value: 55,
+							},
+							{
+								name: "南阳",
+								value: 120,
+							},
+							{
+								name: "西峡",
+								value: 78,
+							},
+							{
+								name: "驻马店",
+								value: 66,
+							},
+							{
+								name: "新乡",
+								value: 80,
+							},
+							{
+								name: "信阳",
+								value: 45,
+							},
+							{
+								name: "漯河",
+								value: 29,
+							},
+						],
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n\t    data: data,\n      colors: ['#e062ae', '#fb7293', '#e690d1', '#32c5e9', '#96bfff'],\n      unit: '单位',\n      showValue: true\n\t  }\n  }\n}",
+						component: {
+							width: 652.35,
+							height: 248.45,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-capsule-chart",
+						},
+					},
+				},
+				{
+					label: "水位图",
+					option: {
+						name: "水位图",
+						title: "datav",
+						icon: "icon-datav",
+						img: "/datav/img/assets/datav/datav1.png",
+						dataType: 0,
+						data: {
+							value: 66,
+						},
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n\t    data: [data.value],\n      shape: 'roundRect'\n\t  }\n  }\n}",
+						component: {
+							width: 150,
+							height: 200,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-water-level-pond",
+						},
+					},
+				},
+				{
+					label: "进度池",
+					option: {
+						name: "进度池",
+						title: "datav",
+						icon: "icon-datav",
+						img: "/datav/img/assets/datav/datav2.png",
+						dataType: 0,
+						data: {
+							value: 66,
+						},
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n      value: data.value,\n      borderWidth: 5,\n      borderRadius: 10,\n      borderGap: 5,\n      lineDash: [10, 2],\n      localGradient: true\n    }\n  }\n}",
+						component: {
+							width: 369,
+							height: 153,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-percent-pond",
+						},
+					},
+				},
+				{
+					label: "锥形柱图",
+					option: {
+						name: "锥形柱图",
+						title: "datav",
+						icon: "icon-datav",
+						img: "/datav/img/assets/datav/datav3.png",
+						dataType: 0,
+						data: [
+							{
+								name: "周口",
+								value: 55,
+							},
+							{
+								name: "南阳",
+								value: 120,
+							},
+							{
+								name: "西峡",
+								value: 71,
+							},
+							{
+								name: "驻马店",
+								value: 66,
+							},
+							{
+								name: "新乡",
+								value: 80,
+							},
+							{
+								name: "信阳",
+								value: 35,
+							},
+							{
+								name: "漯河",
+								value: 15,
+							},
+						],
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n      data:data,\n      img: [\n        '/datav/img/conicalColumnChart/1st.png',\n        '/datav/img/conicalColumnChart/2st.png',\n        '/datav/img/conicalColumnChart/3st.png',\n        '/datav/img/conicalColumnChart/4st.png',\n        '/datav/img/conicalColumnChart/5st.png',\n        '/datav/img/conicalColumnChart/6st.png',\n        '/datav/img/conicalColumnChart/7st.png'\n      ],\n      showValue: true\n    }\n  }\n}",
+						component: {
+							width: 549.18,
+							height: 262.98,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-conical-column-chart",
+						},
+					},
+				},
+				{
+					label: "飞线图",
+					option: {
+						name: "飞线图",
+						title: "datav",
+						icon: "icon-datav",
+						img: "/datav/img/assets/datav/datav4.png",
+						dataType: 0,
+						data: {
+							points: [
+								{
+									name: "郑州",
+									coordinate: [0.48, 0.35],
+									halo: {
+										show: true,
+									},
+									icon: {
+										src: "/datav/img/flylineChart/mapCenterPoint.png",
+										width: 30,
+										height: 30,
+									},
+									text: {
+										show: false,
+									},
+								},
+								{
+									name: "新乡",
+									coordinate: [0.52, 0.23],
+								},
+								{
+									name: "焦作",
+									coordinate: [0.43, 0.29],
+								},
+								{
+									name: "开封",
+									coordinate: [0.59, 0.35],
+								},
+								{
+									name: "许昌",
+									coordinate: [0.53, 0.47],
+								},
+								{
+									name: "平顶山",
+									coordinate: [0.45, 0.54],
+								},
+								{
+									name: "洛阳",
+									coordinate: [0.36, 0.38],
+								},
+								{
+									name: "周口",
+									coordinate: [0.62, 0.55],
+									halo: {
+										show: true,
+										color: "#8378ea",
+									},
+								},
+								{
+									name: "漯河",
+									coordinate: [0.56, 0.56],
+								},
+								{
+									name: "南阳",
+									coordinate: [0.37, 0.66],
+									halo: {
+										show: true,
+										color: "#37a2da",
+									},
+								},
+								{
+									name: "信阳",
+									coordinate: [0.55, 0.81],
+								},
+								{
+									name: "驻马店",
+									coordinate: [0.55, 0.67],
+								},
+								{
+									name: "济源",
+									coordinate: [0.37, 0.29],
+								},
+								{
+									name: "三门峡",
+									coordinate: [0.2, 0.36],
+								},
+								{
+									name: "商丘",
+									coordinate: [0.76, 0.41],
+								},
+								{
+									name: "鹤壁",
+									coordinate: [0.59, 0.18],
+								},
+								{
+									name: "濮阳",
+									coordinate: [0.68, 0.17],
+								},
+								{
+									name: "安阳",
+									coordinate: [0.59, 0.1],
+								},
+							],
+							lines: [
+								{
+									source: "新乡",
+									target: "郑州",
+								},
+								{
+									source: "焦作",
+									target: "郑州",
+								},
+								{
+									source: "开封",
+									target: "郑州",
+								},
+								{
+									source: "周口",
+									target: "郑州",
+									color: "#fb7293",
+									width: 2,
+								},
+								{
+									source: "南阳",
+									target: "郑州",
+									color: "#fb7293",
+									width: 2,
+								},
+								{
+									source: "济源",
+									target: "郑州",
+								},
+								{
+									source: "三门峡",
+									target: "郑州",
+								},
+								{
+									source: "商丘",
+									target: "郑州",
+								},
+								{
+									source: "鹤壁",
+									target: "郑州",
+								},
+								{
+									source: "濮阳",
+									target: "郑州",
+								},
+								{
+									source: "安阳",
+									target: "郑州",
+								},
+								{
+									source: "许昌",
+									target: "南阳",
+									color: "#37a2da",
+								},
+								{
+									source: "平顶山",
+									target: "南阳",
+									color: "#37a2da",
+								},
+								{
+									source: "洛阳",
+									target: "南阳",
+									color: "#37a2da",
+								},
+								{
+									source: "驻马店",
+									target: "周口",
+									color: "#8378ea",
+								},
+								{
+									source: "信阳",
+									target: "周口",
+									color: "#8378ea",
+								},
+								{
+									source: "漯河",
+									target: "周口",
+									color: "#8378ea",
+								},
+							],
+						},
+						lines: [
+							{
+								source: "新乡",
+								target: "郑州",
+							},
+							{
+								source: "焦作",
+								target: "郑州",
+							},
+							{
+								source: "开封",
+								target: "郑州",
+							},
+							{
+								source: "周口",
+								target: "郑州",
+								color: "#fb7293",
+								width: 2,
+							},
+							{
+								source: "南阳",
+								target: "郑州",
+								color: "#fb7293",
+								width: 2,
+							},
+							{
+								source: "济源",
+								target: "郑州",
+							},
+							{
+								source: "三门峡",
+								target: "郑州",
+							},
+							{
+								source: "商丘",
+								target: "郑州",
+							},
+							{
+								source: "鹤壁",
+								target: "郑州",
+							},
+							{
+								source: "濮阳",
+								target: "郑州",
+							},
+							{
+								source: "安阳",
+								target: "郑州",
+							},
+							{
+								source: "许昌",
+								target: "南阳",
+								color: "#37a2da",
+							},
+							{
+								source: "平顶山",
+								target: "南阳",
+								color: "#37a2da",
+							},
+							{
+								source: "洛阳",
+								target: "南阳",
+								color: "#37a2da",
+							},
+							{
+								source: "驻马店",
+								target: "周口",
+								color: "#8378ea",
+							},
+							{
+								source: "信阳",
+								target: "周口",
+								color: "#8378ea",
+							},
+							{
+								source: "漯河",
+								target: "周口",
+								color: "#8378ea",
+							},
+						],
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n      points:data.points,\n      lines:data.lines,\n      icon: {\n        show: true,\n        src: '/datav/img/flylineChart/mapPoint.png'\n      },\n      text: {\n        show: true,\n      },\n      k: 0.5,\n      bgImgSrc: '/datav/img/flylineChart/map.jpg'\n    }\n  }\n}",
+						component: {
+							width: 949.32,
+							height: 515.7,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-flyline-chart-enhanced",
+						},
+					},
+				},
+				{
+					label: "动态环图",
+					option: {
+						name: "动态环图",
+						title: "datav",
+						icon: "icon-datav",
+						img: "/datav/img/assets/datav/datav5.png",
+						dataType: 0,
+						data: [
+							{
+								name: "周口",
+								value: 55,
+							},
+							{
+								name: "南阳",
+								value: 120,
+							},
+							{
+								name: "西峡",
+								value: 78,
+							},
+							{
+								name: "驻马店",
+								value: 66,
+							},
+							{
+								name: "新乡",
+								value: 80,
+							},
+						],
+						dataFormatter: "",
+						echartFormatter:
+							"(data)=>{\n  return {\n    config:{\n      radius: '40%',\n      activeRadius: '45%',\n      data: data,\n      digitalFlopStyle: {\n        fontSize: 20\n      },\n      showOriginValue: true\n    }\n  }\n}",
+						component: {
+							width: 949.32,
+							height: 515.7,
+							name: "datav",
+							prop: "datav",
+						},
+						option: {
+							is: "dv-active-ring-chart",
+						},
+					},
+				},
+			],
+		},
+		{
 			label: "装饰",
 			icon: "icon-jianzhuzhuangshi",
 			children: [

+ 7 - 0
src/api/wdt/merchantDetails/MerchantDetailsService.js

@@ -29,6 +29,13 @@ export default {
 			params: { dataSources: dataSources },
 		});
 	},
+	screenSave: function (screenName) {
+		return request({
+			url: "/wdt/merchantDetails/screenSave",
+			method: "post",
+			params: { screenName: screenName },
+		});
+	},
 	delete: function (ids) {
 		return request({
 			url: "/wdt/merchantDetails/delete",

+ 57 - 0
src/api/wdt/merchantProduct/MerchantProductService.js

@@ -0,0 +1,57 @@
+import request from "@/utils/httpRequest";
+
+export default {
+	list: function (params) {
+		return request({
+			url: "/wdt/merchantProduct/list",
+			method: "get",
+			params: params,
+		});
+	},
+	queryById: function (id) {
+		return request({
+			url: "/wdt/merchantProduct/queryById",
+			method: "get",
+			params: { id: id },
+		});
+	},
+	save: function (inputForm) {
+		return request({
+			url: "/wdt/merchantProduct/save",
+			method: "post",
+			data: inputForm,
+		});
+	},
+	delete: function (ids) {
+		return request({
+			url: "/wdt/merchantProduct/delete",
+			method: "delete",
+			params: { ids: ids },
+		});
+	},
+
+	exportTemplate: function () {
+		return request({
+			url: "/wdt/merchantProduct/import/template",
+			method: "get",
+			responseType: "blob",
+		});
+	},
+
+	exportExcel: function (params) {
+		return request({
+			url: "/wdt/merchantProduct/export",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	},
+
+	importExcel: function (data) {
+		return request({
+			url: "/wdt/merchantProduct/import",
+			method: "post",
+			data: data,
+		});
+	},
+};

+ 4 - 1
src/datav/echart/option.js

@@ -42,6 +42,9 @@ export default {
       }
     },
     getOptionLegend (data) {
+		console.log(data)
+		console.log(this.dataChart.series)
+		console.log(this.dataChart)
       return {
         type: 'scroll',
         show: this.validData(this.option.legend, false),
@@ -78,4 +81,4 @@ export default {
       }
     },
   }
-}
+}

+ 80 - 4
src/views/wdt/merchantCompany/MerchantCompanyForm.vue

@@ -8,7 +8,7 @@
       @keyup.enter.native="doSubmit"
       v-model="visible">
       <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
-               label-width="120px" @submit.native.prevent>
+               label-width="125px" @submit.native.prevent>
         <el-row  :gutter="15">
           <el-col :span="12">
             <el-form-item label="公司名称" prop="companyName"
@@ -18,6 +18,29 @@
               <el-input v-model="inputForm.companyName" placeholder="请填写公司名称"></el-input>
             </el-form-item>
           </el-col>
+			<el-col :span="12">
+				<el-form-item label="公司类型" prop="companyType" :rules="[
+					{required: true, message:'公司类型不能为空', trigger:'blur'}
+				]">
+					<el-select
+						v-model="inputForm.companyType"
+						placeholder="请选择"
+						style="width: 100%"
+						clearable
+					>
+						<el-option
+							v-for="item in $dictUtils.getDictList(
+								'merchant_company_type'
+							)"
+							:key="item.value"
+							:label="item.label"
+							:value="item.value"
+						>
+						</el-option>
+					</el-select>
+				</el-form-item>
+
+			</el-col>
           <el-col :span="12">
             <el-form-item label="联系人姓名" prop="linkmanName"
                           :rules="[
@@ -37,13 +60,57 @@
 			</el-col>
 
 			<el-col :span="12">
+				<el-form-item label="是否为电商小铺" prop="commerceShop"
+					:rules="[
+							{required: true,message: '必须选择',trigger: 'blur',},
+						]"
+				>
+					<el-radio-group v-model="inputForm.commerceShop">
+						<el-radio
+							v-for="item in this.$dictUtils.getDictList(
+									'yes_no'
+								)"
+							:label="item.value"
+							:key="item.id"
+						>{{ item.label }}</el-radio
+						>
+					</el-radio-group>
+				</el-form-item>
+			</el-col>
+
+			<el-col :span="12">
+				<el-form-item label="入驻产品" prop="merchantProductIdList" :rules="[
+					{required: true, message:'入驻产品不能为空', trigger:'blur'}
+				]">
+					<el-select
+						v-model="inputForm.merchantProductIdList"
+						style="width: 100%"
+						multiple
+						clearable
+						placeholder="请选择"
+					>
+						<el-option
+							v-for="item in merchantProductList"
+							:key="item.id"
+							:label="item.name"
+							:value="item.id"
+						>
+						</el-option>
+					</el-select>
+				</el-form-item>
+
+
+			</el-col>
+
+
+			<!--<el-col :span="12">
 				<el-form-item label="从业人员(人)" prop="practitionerCount"
 							  :rules="[
                           {required: true, message:'从业人员不能为空', trigger:'blur'}
                  ]">
 					<el-input v-model="inputForm.practitionerCount" placeholder="请填写从业人员"></el-input>
 				</el-form-item>
-			</el-col>
+			</el-col>-->
 
 			<el-col :span="12">
 				<el-form-item label="年销售额(元)" prop="annualSales"
@@ -54,14 +121,14 @@
 				</el-form-item>
 			</el-col>
 
-			<el-col :span="12">
+			<!--<el-col :span="12">
 				<el-form-item label="网络零售额(元)" prop="onlineRetailSales"
 							  :rules="[
                           {required: true, message:'网络零售额不能为空', trigger:'blur'}
                  ]">
 					<el-input v-model="inputForm.onlineRetailSales" placeholder="请填写网络零售额"></el-input>
 				</el-form-item>
-			</el-col>
+			</el-col>-->
 			<el-col :span="12">
 				<el-form-item label="入驻平台" prop="settledPlatformIdList">
 					<el-select
@@ -104,6 +171,7 @@
 <script>
   import merchantCompanyService from '@/api/wdt/merchantCompany/MerchantCompanyService'
   import settledPlatformService from '@/api/wdt/settledPlatform/SettledPlatformService'
+  import merchantProductService from '@/api/wdt/merchantProduct/MerchantProductService'
   export default {
     data () {
       return {
@@ -112,10 +180,14 @@
         visible: false,
         loading: false,
 		  settledPlatformList: [],
+		  merchantProductList: [],
         inputForm: {
 			companyName: '',
+			companyType: '',
 			linkmanName: '',
 			linkmanPhone: '',
+			commerceShop: '',
+			merchantProductIdList: [],
 			practitionerCount: '',
 			annualSales: '',
 			onlineRetailSales: '',
@@ -154,13 +226,17 @@
 
 			Promise.all([
 				settledPlatformService.list({ current: 1, size: -1 }),
+				merchantProductService.list({ current: 1, size: -1 }),
 			]).then((result) => {
 				this.settledPlatformList = result[0].records;
+				this.merchantProductList = result[1].records;
+				console.log(result)
 			});
 
           if (method === 'edit' || method === 'view') { // 修改或者查看
             this.loading = true
             merchantCompanyService.queryById(this.inputForm.id).then((data) => {
+            	console.log(data)
               this.inputForm = this.recover(this.inputForm, data)
               this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
               this.loading = false

+ 2 - 2
src/views/wdt/merchantCompany/MerchantCompanyList.vue

@@ -17,12 +17,12 @@
 							 @changeto="(val)=>{searchForm.annualSalesList[1]=val}"
 				></InputNumber>
 			</el-form-item>
-			<el-form-item v-if="showHideItem" label="网络零售额(元)" prop="onlineRetailSalesList">
+			<!--<el-form-item v-if="showHideItem" label="网络零售额(元)" prop="onlineRetailSalesList">
 				<InputNumber :disabled="false" :precision="num" :value="searchForm.onlineRetailSalesList"
 							 @changefrom="(val)=>{searchForm.onlineRetailSalesList[0]=val}"
 							 @changeto="(val)=>{searchForm.onlineRetailSalesList[1]=val}"
 				></InputNumber>
-			</el-form-item>
+			</el-form-item>-->
 
 			<el-form-item v-if="showHideItem" label="入驻平台" prop="settledPlatformId">
 				<el-select

+ 62 - 13
src/views/wdt/merchantDetails/MerchantDetailsInfo.vue

@@ -26,13 +26,19 @@
 							ref="generalForm"
 							label-width="150px"
 						>
-							<el-form-item label="入驻企业数" prop="settledEnterpriseNumber"
+							<el-form-item label="产品加工企业" prop="settledEnterpriseNumber"
 							>
 								<el-input onkeyup="value=value.replace(/[^\d]/g,0)" v-model="generalForm.settledEnterpriseNumber"></el-input>
 							</el-form-item>
-							<el-form-item label="电商从业人数"  prop="practitionerCount">
+
+							<el-form-item label="合作企业数" prop="cooperativeEnterpriseNumber"
+							>
+								<el-input onkeyup="value=value.replace(/[^\d]/g,0)" v-model="generalForm.cooperativeEnterpriseNumber"></el-input>
+							</el-form-item>
+
+							<el-form-item label="电商小铺(家)"  prop="commerceShopCount">
 								<el-input onkeyup="value=value.replace(/[^\d]/g,0)"
-										  v-model="generalForm.practitionerCount"></el-input>
+										  v-model="generalForm.commerceShopCount"></el-input>
 							</el-form-item>
 							<el-form-item label="年交易额(万元)" prop="annualSales">
 								<el-input v-on:input="generalForm.annualSales=generalForm.annualSales.replace(/[^-0-9.]/g,'')
@@ -43,7 +49,7 @@
 									v-model="generalForm.annualSales"
 								></el-input>
 							</el-form-item>
-							<el-form-item label="网络零售额(万元)" prop="onlineRetailSales">
+							<!--<el-form-item label="网络零售额(万元)" prop="onlineRetailSales">
 								<el-input v-on:input="generalForm.onlineRetailSales=generalForm.onlineRetailSales.replace(/[^-0-9.]/g,'')
 												.replace(/^\./g,'')
 												.replace(/\.{2,}/g,'.')
@@ -51,8 +57,13 @@
 												.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
 									v-model="generalForm.onlineRetailSales"
 								></el-input>
+							</el-form-item>-->
+							<el-form-item label="入驻产品种类(种)" prop="merchantProductCount">
+								<el-input onkeyup="value=value.replace(/[^\d]/g,0)"
+										  v-model="generalForm.merchantProductCount"
+								></el-input>
 							</el-form-item>
-							<el-form-item label="抖音入驻(家)" prop="enterNumber">
+							<el-form-item label="入驻平台(家)" prop="enterNumber">
 								<el-input onkeyup="value=value.replace(/[^\d]/g,0)"
 										  v-model="generalForm.enterNumber"
 								></el-input>
@@ -68,6 +79,31 @@
 						</el-form>
 					</el-tab-pane>
 
+					<el-tab-pane label="修改大屏名称">
+						<el-form
+							:model="screenForm"
+							ref="screenForm"
+							label-width="100px"
+						>
+							<el-form-item label="大屏名称" :rules="[
+									{ required: true, message: '必填项不能为空', trigger: 'blur', },
+								]"
+								prop="name"
+							>
+								<el-input
+									v-model="screenForm.name"
+								></el-input>
+							</el-form-item>
+
+							<el-form-item>
+								<el-button
+									type="primary"
+									@click="submitScreenForm()"
+								>保存</el-button
+								>
+							</el-form-item>
+						</el-form>
+					</el-tab-pane>
 
 				</el-tabs>
 			</el-card>
@@ -80,13 +116,6 @@
 	import merchantDetailsService from "@/api/wdt/merchantDetails/MerchantDetailsService";
 	export default {
 		data() {
-			var validatePass2 = (rule, value, callback) => {
-				if (value !== this.pwdForm.newPassword) {
-					callback(new Error("两次输入密码不一致!"));
-				} else {
-					callback();
-				}
-			};
 			return {
 				isShow: false,
 				type: "1",
@@ -110,11 +139,17 @@
 				generalForm: {
 					id: "",
 					settledEnterpriseNumber: "",
+					cooperativeEnterpriseNumber: "",
 					practitionerCount: "",
+					commerceShopCount: "",
 					annualSales: "",
 					onlineRetailSales: "",
+					merchantProductCount: "",
 					enterNumber: "",
 				},
+				screenForm: {
+					name: ""
+				},
 				tablePage: {
 					total: 0,
 					currentPage: 1,
@@ -124,7 +159,6 @@
 				loading: false,
 				rule: [
 					{ required: true, message: "必填项不能为空", trigger: "blur" },
-					{ validator: validatePass2, trigger: "blur" },
 				],
 			};
 		},
@@ -136,6 +170,11 @@
 				}else{
 					this.isShow = false
 				}
+				if(data.screenName){
+					this.screenForm.name = data.screenName
+				}else{
+					this.screenForm.name = ''
+				}
 				this.recover(this.generalForm, data);
 			});
 			this.refreshList();
@@ -164,6 +203,16 @@
 					this.$message.success(data);
 				}
 			},
+
+			async submitScreenForm() {
+				let valid = await this.$refs["screenForm"].validate();
+				if (valid) {
+					const loading = this.$loading();
+					let data = await merchantDetailsService.screenSave(this.screenForm.name);
+					loading.close();
+					this.$message.success(data);
+				}
+			},
 			// 获取数据列表
 			refreshList() {
 				this.loading = true;

+ 174 - 0
src/views/wdt/merchantProduct/MerchantProductForm.vue

@@ -0,0 +1,174 @@
+<template>
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+	  draggable
+      @close="close"
+      @keyup.enter.native="doSubmit"
+      v-model="visible">
+      <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+               label-width="130px" @submit.native.prevent>
+        <el-row  :gutter="15">
+          <el-col :span="12">
+            <el-form-item label="产品名称" prop="name"
+                          :rules="[
+                          {required: true, message:'产品名称不能为空', trigger:'blur'}
+                 ]">
+              <el-input v-model="inputForm.name" placeholder="请填写产品名称"></el-input>
+            </el-form-item>
+          </el-col>
+			<el-col :span="12">
+				<el-form-item label="排序" prop="sort"
+							  :rules="[
+                          {required: true, message:'排序不能为空', trigger:'blur'}
+                 ]">
+					<el-input-number v-model="inputForm.sort"
+									 style="width:100%;"
+									 :min="0"
+									 placeholder="请填写排序"
+					></el-input-number>
+				</el-form-item>
+			</el-col>
+
+
+          <el-col :span="24">
+            <el-form-item label="产品销售量" prop="salesVolume"
+                          :rules="[
+
+                 ]">
+              <el-input v-on:input="inputForm.salesVolume=inputForm.salesVolume.replace(/[^-0-9.]/g,'')
+												.replace(/^\./g,'')
+												.replace(/\.{2,}/g,'.')
+												.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
+												.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
+						v-model="inputForm.salesVolume" placeholder="请填写产品销售量"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="产品销售额(元)" prop="saleroom"
+                          :rules="[
+
+                 ]">
+              <el-input v-on:input="inputForm.saleroom=inputForm.saleroom.replace(/[^-0-9.]/g,'')
+												.replace(/^\./g,'')
+												.replace(/\.{2,}/g,'.')
+												.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
+												.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
+						v-model="inputForm.saleroom" placeholder="请填写产品销售额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="产品月销售额(元)" prop="monthlySalesVolume"
+                          :rules="[
+
+                 ]">
+              <el-input v-on:input="inputForm.monthlySalesVolume=inputForm.monthlySalesVolume.replace(/[^-0-9.]/g,'')
+												.replace(/^\./g,'')
+												.replace(/\.{2,}/g,'.')
+												.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
+												.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
+						v-model="inputForm.monthlySalesVolume" placeholder="请填写产品月销售额"></el-input>
+            </el-form-item>
+          </el-col>
+
+
+
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remarks"
+                          :rules="[
+                 ]">
+              <el-input type="textarea" maxlength="255" v-model="inputForm.remarks" placeholder="请填写备注"  show-word-limit   ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+	import merchantProductService from '@/api/wdt/merchantProduct/MerchantProductService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+			name: '',
+			salesVolume: '',
+			saleroom: '',
+			monthlySalesVolume: '',
+			sort: 0,
+         	remarks: '',
+        }
+      }
+    },
+    created () {
+    },
+    methods: {
+      init (method, id) {
+        this.method = method
+        this.inputForm = {
+          name: '',
+			salesVolume: '',
+			saleroom: '',
+			monthlySalesVolume: '',
+          sort: '',
+          remarks: '',
+          parentId: ''
+        }
+        if (method === 'add') {
+          this.title = `新增产品信息`
+        } else if (method === 'edit') {
+          this.inputForm.id = id
+          this.title = '修改产品信息'
+        } else if (method === 'view') {
+          this.inputForm.id = id
+          this.title = '查看产品信息'
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.$refs.inputForm.resetFields()
+          if (method === 'edit' || method === 'view') { // 修改或者查看
+            this.loading = true
+			  merchantProductService.queryById(this.inputForm.id).then((data) => {
+              this.inputForm = this.recover(this.inputForm, data)
+              this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.loading = false
+            })
+          }
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+			  merchantProductService.save(this.inputForm).then((data) => {
+              this.close()
+              this.$message.success(data)
+              this.$emit('refreshDataList')
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      close () {
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>

+ 246 - 0
src/views/wdt/merchantProduct/MerchantProductList.vue

@@ -0,0 +1,246 @@
+<template>
+	<div class="page">
+		<el-form :inline="true" class="query-form m-b-10" v-if="searchVisible" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+			<!-- 搜索框-->
+			<el-form-item label="产品名称" prop="name">
+				<el-input v-model="searchForm.name" placeholder="请输入产品名称" clearable></el-input>
+			</el-form-item>
+			<el-form-item label="创建时间" prop="dates">
+				<el-date-picker
+					style=""
+					placement="bottom-start"
+					value-format="YYYY-MM-DD HH:mm:ss"
+					v-model="searchForm.dates"
+					type="datetimerange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</el-form-item>
+
+			<el-form-item>
+				<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+				<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+			</el-form-item>
+		</el-form>
+
+		<div class="jp-table top" style="">
+			<vxe-toolbar :refresh="{query: refreshList}" ref="toolbarRef" custom>
+				<template #buttons>
+					<el-button v-if="hasPermission('wdt:merchantProduct:add')" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+					<el-button v-if="hasPermission('wdt:merchantProduct:del')" type="danger"  icon="el-icon-delete" @click="del()" :disabled="$refs.infoTable && $refs.infoTable.getCheckboxRecords().length === 0" plain>删除</el-button>
+				</template>
+			</vxe-toolbar>
+			<div style="height: calc(100% - 80px)">
+				<vxe-table
+					border="inner"
+					auto-resize
+					resizable
+					height="auto"
+					:loading="loading"
+					ref="infoTable"
+					show-header-overflow
+					show-overflow
+					highlight-hover-row
+					:menu-config="{}"
+					:sort-config="{remote:true}"
+					:export-config="{
+                    remote: true,
+                    filename: `入驻平台数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    sheetName: `入驻平台数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    exportMethod: exportMethod,
+                    types: ['xlsx'],
+                    modes: ['current', 'selected', 'all']
+                  }"
+					:data="dataList"
+					:checkbox-config="{}">
+					<vxe-column type="seq" width="60" title="序号"></vxe-column>
+					<vxe-column type="checkbox" width="60" ></vxe-column>
+					<vxe-column min-width="130" title="产品名称" field="productName" align="center">
+						<template #default="scope">
+							<el-link  type="primary" :underline="false" v-if="hasPermission('wdt:merchantProduct:view')" @click="view(scope.row.id)">{{scope.row.name}}</el-link>
+							<span v-else>{{scope.row.name}}</span>
+						</template>
+					</vxe-column>
+					<vxe-column width="120" title="销售量" field="salesVolume" align="center"></vxe-column>
+					<vxe-column width="120" title="销售额(元)" field="saleroom" align="center"></vxe-column>
+					<vxe-column width="120" title="月销售额(元)" field="monthlySalesVolume" align="center"></vxe-column>
+					<vxe-column width="120" title="排序" field="sort" align="center"></vxe-column>
+					<vxe-column width="180" title="创建时间" field="createTime" align="center"></vxe-column>
+
+					<vxe-column title="操作" width="130px" fixed="right" align="center">
+						<template  #default="scope">
+							<el-button v-if="hasPermission('wdt:merchantProduct:edit')" text type="primary" @click="edit(scope.row)">修改</el-button>
+							<el-button v-if="hasPermission('wdt:merchantProduct:del')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+						</template>
+					</vxe-column>
+				</vxe-table>
+				<vxe-pager
+					background
+					:current-page="tablePage.currentPage"
+					:page-size="tablePage.pageSize"
+					:total="tablePage.total"
+					:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+					:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+					@page-change="currentChangeHandle">
+				</vxe-pager>
+
+				<MerchantProductForm  ref="merchantProductForm" @refreshDataList="refreshList"></MerchantProductForm>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import merchantProductService from '@/api/wdt/merchantProduct/MerchantProductService'
+	import MerchantProductForm from './MerchantProductForm'
+	export default {
+		data () {
+			return {
+				searchVisible: true,
+				num: 0,
+				visable: false,
+				gridData: [],
+				searchForm: {
+					name: '',
+					dates: [],
+					type: [],
+				},
+				dataList: [],
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: []
+				},
+				loading: false,
+				isAdmin: false
+			}
+		},
+		created () {
+		},
+		components: {
+			MerchantProductForm
+		},
+		mounted () {
+			this.$nextTick(() => {
+				//将表格和工具栏进行关联
+				const $table = this.$refs.infoTable;
+				const $toolbar = this.$refs.toolbarRef;
+				$table.connect($toolbar);
+			})
+			this.refreshList()
+		},
+		activated () {
+			this.refreshList()
+		},
+		computed: {
+			userName () {
+				return this.$store.state.user.name
+			},
+			user () {
+				this.create = this.$store.state.user.id
+				console.log('createId', this.create)
+				return this.$store.state.user
+			}
+		},
+		methods: {
+			// 新增
+			add () {
+				this.$refs.merchantProductForm.init('add', '')
+			},
+
+			// 查看
+			view (id) {
+				this.$refs.merchantProductForm.init('view', id)
+			},
+			edit (row) {
+				this.$refs.merchantProductForm.init('edit', row.id)
+			},
+			// 获取数据列表
+			refreshList () {
+				this.loading = true
+				merchantProductService.list({
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm
+				}).then((data) => {
+					this.dataList = data.records
+					this.tablePage.total = data.total
+					this.loading = false
+				})
+			},
+			// 删除
+			del (id) {
+				let ids = id || this.$refs.infoTable.getCheckboxRecords().map(item => {
+					return item.id
+				}).join(',')
+				this.$confirm(`确定删除所选项吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					this.loading = true
+					merchantProductService.delete(ids).then((data) => {
+						this.$message.success(data)
+						this.refreshList()
+						this.loading = false
+					})
+				})
+			},
+			resetSearch () {
+				this.$refs.searchForm.resetFields()
+				this.refreshList()
+			},
+			// 下载文档
+			exportFile () {
+				this.loading = true
+				merchantProductService.exportFile({
+					'itemType': '1',
+					...this.searchForm
+				}).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, '产品信息表')
+					this.loading = false
+				}).catch(function (err) {
+					this.loading = false
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			// 当前页
+			currentChangeHandle ({ currentPage, pageSize }) {
+				this.tablePage.currentPage = currentPage
+				this.tablePage.pageSize = pageSize
+				this.refreshList()
+			},
+			// 自定义服务端导出
+			exportMethod ({ options }) {
+				// 传给服务端的参数
+				const params = {
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm,
+					filename: options.filename,
+					sheetName: options.sheetName,
+					isHeader: options.isHeader,
+					original: options.original,
+					mode: options.mode,
+					selectIds: options.mode === 'selected' ? options.map(item => item.id) : [],
+					exportFields: options.columns.map(column => column.property)
+				}
+				return merchantProductService.exportFile(params).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, options.filename)
+				}).catch(function (err) {
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+		}
+	}
+</script>

+ 1 - 1
src/views/wdt/settledPlatform/SettledPlatformList.vue

@@ -59,7 +59,7 @@
 					<vxe-column min-width="130" title="入驻平台名称" field="name" align="center">
 						<template #default="scope">
 							<el-link  type="primary" :underline="false" v-if="hasPermission('wdt:settledPlatform:view')" @click="view(scope.row.id)">{{scope.row.name}}</el-link>
-							<span v-else>{{scope.row.no}}</span>
+							<span v-else>{{scope.row.name}}</span>
 						</template>
 					</vxe-column>
 					<vxe-column width="120" title="排序" field="sort" align="center"></vxe-column>