瀏覽代碼

建筑页

shang 1 年之前
父節點
當前提交
a6c7a10010
共有 50 個文件被更改,包括 3222 次插入843 次删除
  1. 2 2
      App.vue
  2. 50 0
      chuanCheng_fenbao/search.vue
  3. 415 0
      chuanCheng_fenbao/touGao.vue
  4. 2 0
      components/course-item/course-item.vue
  5. 75 0
      components/likeComponent/likeComponent.vue
  6. 1 1
      components/mn_yindaoye.vue
  7. 5 5
      components/mntabBar/mntabBar.vue
  8. 71 11
      config/api.js
  9. 8 11
      config/config.js
  10. 22 20
      index_fenbao/cs_liebiao/cs_liebiao.vue
  11. 73 49
      index_fenbao/feiyi/feiyi.vue
  12. 128 0
      index_fenbao/feiyi/feiyiXQ.vue
  13. 218 0
      index_fenbao/jianzhu/jianZhuXQ.vue
  14. 142 0
      index_fenbao/jianzhu/jianZhu_index.vue
  15. 80 16
      index_fenbao/jianzhu/jianzhu.vue
  16. 106 0
      index_fenbao/jianzhu/map_page.vue
  17. 72 96
      index_fenbao/minNanyu/minNanyu.vue
  18. 382 0
      index_fenbao/minNanyu/videoPage.vue
  19. 36 0
      index_fenbao/minsu/geng_duo.vue
  20. 94 119
      index_fenbao/minsu/minsu.vue
  21. 151 20
      index_fenbao/minsu/ms_wenZhang.vue
  22. 58 26
      index_fenbao/mn_jingshen/mn_jingshen.vue
  23. 114 0
      index_fenbao/mn_jingshen/xiang_qing.vue
  24. 3 0
      manifest.json
  25. 64 3
      pages.json
  26. 28 0
      pages/chuanCheng/chuanCheng.vue
  27. 6 5
      pages/course/detail.vue
  28. 2 1
      pages/course/index.vue
  29. 208 165
      pages/index/index.vue
  30. 234 75
      pages/jiyi/jiyi.vue
  31. 117 59
      pages/user/index.vue
  32. 19 11
      pages/user/login.vue
  33. 3 3
      pages/xueYuan/xueYuan.vue
  34. 二進制
      static/image/commossion_a.png
  35. 二進制
      static/image/fy_icon.png
  36. 二進制
      static/image/home_a.png
  37. 二進制
      static/image/icon_map.png
  38. 二進制
      static/image/invite_a.png.png
  39. 二進制
      static/image/js_icon.png
  40. 二進制
      static/image/jz_bg.png
  41. 二進制
      static/image/jz_icon.png
  42. 二進制
      static/image/jz_tit.png
  43. 二進制
      static/image/jz_titbg.png
  44. 二進制
      static/image/mine_a.png
  45. 二進制
      static/image/mn_icon.png
  46. 二進制
      static/image/ms_icon.png
  47. 二進制
      static/image/wajue.png
  48. 2 4
      store/index.js
  49. 3 2
      store/module/user.js
  50. 228 139
      user_fenbao/myLike.vue

+ 2 - 2
App.vue

@@ -69,7 +69,7 @@ export default {
 		// console.log('App 开启');
 	},
 	onHide: function () {
-		console.log('App 关闭');
+		// console.log('App 关闭');
 	},
 	/* 隐藏默认tabBar */
 	onLoad: function () {
@@ -90,4 +90,4 @@ export default {
 // // 	font-family: graceIconfont;
 // // }
 // /* #endif */
-</style>
+</style>

+ 50 - 0
chuanCheng_fenbao/search.vue

@@ -0,0 +1,50 @@
+<template>
+	<view class="box">
+		<u-navbar title="搜索" :autoBack="true" bgColor="rgba(255,255,255,255)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view class="box_search" @click="searchBtn">
+			<u-search :shape="square" v-model="val" bgColor="#efefef" :showAction="false" height="70rpx"></u-search>
+			<view class="sousuo">搜索</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			val: ''
+		};
+	},
+	methods: {
+		searchBtn() {}
+	}
+};
+</script>
+
+<style>
+.box {
+	height: auto;
+	width: 100%;
+	background-color: #f8f8f8;
+	background-attachment: fixed;
+	position: relative;
+	display: flex;
+	flex-direction: column;
+}
+.box_search {
+	display: flex;
+	margin: 20rpx 32rpx 0 46rpx;
+	width: 650rpx;
+	height: 80rpx;
+}
+
+.sousuo {
+	width: 118rpx;
+	height: 80rpx;
+	text-align: center;
+	color: #ffffff;
+	line-height: 80rpx;
+	background: #ca5642;
+	border-radius: 20rpx;
+}
+</style>

+ 415 - 0
chuanCheng_fenbao/touGao.vue

@@ -0,0 +1,415 @@
+<template>
+	<view class="body" style="background-color: #efefef">
+		<u-navbar :autoBack="true" title="发布" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view class="nav_fabu">
+			<view class="nav_left">
+				<view class="left_icon"><uni-icons type="compose" size="20" color=" #ffffff"></uni-icons></view>
+				<text>发文章</text>
+			</view>
+			<view class="nav_right">
+				<view class="left_icon"><uni-icons type="compose" size="20" color=" #ffffff"></uni-icons></view>
+				<text>发照片</text>
+			</view>
+		</view>
+		<!-- 上传发布组件 -->
+		<view class="" style="margin-bottom: 20rpx">
+			<u--input v-model="titleVal" customStyle="background-color: #ffffff;height: 105rpx;" placeholder="请填写标题" border="surround" clearable></u--input>
+		</view>
+
+		<view class="box">
+			<view class="sc_box">
+				<text class="sc_tp">请上传图片</text>
+				<text class="sc_tp">{{ uploadNumber + '/' + 9 }}</text>
+			</view>
+			<view style="margin-left: 56rpx">
+				<u-upload
+					width="200rpx"
+					height="200rpx"
+					:maxCount="9"
+					:deletable="true"
+					:fileList="fileList1"
+					@afterRead="afterRead"
+					@delete="deletePic"
+					name="1"
+					multiple
+				></u-upload>
+			</view>
+			<view class="" style="background-color: #efefef; height: 20rpx; width: 100%"><!-- 分割背景 --></view>
+			<view class="banxin" style="background-color: #ffffff; margin-top: 20rpx">
+				<u--textarea v-model="textVal" placeholder="请输入内容"></u--textarea>
+			</view>
+			<!-- 分区 -->
+			<u-popup :show="showTanCeng" mode="bottom" @close="close" bgColor="#efefef">
+				<view class="show_box">
+					<view class="" style="display: flex; justify-content: space-between">
+						<text @click="showTanCeng = false">取消</text>
+						<text class="box_ok">确认</text>
+					</view>
+					<view class="box_fenqu" @click="show = true">
+						<text>分区</text>
+						<view class="">
+							<text style="color: #999999; font-size: 28rpx">生活 - 日常</text>
+							<uni-icons color="#999999" type="forward" size="20"></uni-icons>
+						</view>
+					</view>
+					<!-- 添加标签 -->
+					<view class="box_tj">
+						<!-- <text style="color: #999999; font-size: 28rpx">还可以添加 2 个标签</text> -->
+						<view class="tag_box">
+							<view class="" v-for="(item, index) in radios" :key="index">
+								<u-tag size="mini" :text="`选项${index + 1}`" :plain="!item.checked" shape="circle" type="warning" :name="index" @click="radioClick"></u-tag>
+							</view>
+						</view>
+						<!-- 推荐标签 -->
+						<!-- 	<view class="" style="margin-top: 20rpx">
+							<view style="color: #000000; font-size: 30rpx">推荐标签</view>
+							<view class="" style="display: flex; margin-top: 20rpx">
+								<u-tag size="mini" shape="circle" text="标签" type="warning"></u-tag>
+								<u-tag size="mini" shape="circle" text="标签" type="success"></u-tag>
+							</view>
+						</view> -->
+					</view>
+
+					<u-picker
+						title="选择分区"
+						:show="show"
+						@close="show = false"
+						ref="uPicker"
+						@cancel="show = false"
+						keyName="label"
+						:closeOnClickOverlay="true"
+						:columns="columns"
+						@confirm="confirm"
+						@change="changeHandler"
+					></u-picker>
+				</view>
+			</u-popup>
+			<view class="" style="background-color: #efefef; height: 20rpx; width: 100%"><!-- 分割背景 --></view>
+			<view class="fq_box" @click="fenquBtn">
+				<text>选择投稿类型</text>
+				<view class="bq_box">
+					<u-tag size="mini" shape="circle" text="文物" type="warning"></u-tag>
+					<u-tag size="mini" shape="circle" text="非遗" type="success"></u-tag>
+					<u-tag size="mini" shape="circle" text="民俗" type="error"></u-tag>
+					<u-icon name="arrow-right" color="#666666" size="16"></u-icon>
+				</view>
+			</view>
+
+			<!-- 评论 -->
+			<view class="" style="background-color: #efefef; height: 20rpx; width: 100%"></view>
+			<!-- 		<view class="pl_box">
+				<text>开启评论</text>
+				<u-switch activeColor="#5ac725" v-model="switchval" @change="change"></u-switch>
+			</view> -->
+			<view class="queren" @click="isOk">确认发布</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that;
+export default {
+	data() {
+		return {
+			radios: [
+				{
+					checked: true
+				},
+				{
+					checked: false
+				},
+				{
+					checked: false
+				}
+			],
+			closeTag: true,
+			tags: [
+				{ label: '标签1', type: 'primary', closable: true },
+				{ label: '标签2', type: 'warning ', closable: true },
+				{ label: '标签3', type: 'success', closable: true }
+			],
+			showTanCeng: false,
+			show: false,
+			columns: [
+				[
+					{ label: '中国', id: 1 },
+					{ label: '美国', id: 2 }
+				],
+				['深圳', '厦门', '上海', '拉萨']
+			],
+			columnData: [
+				['深圳', '厦门', '上海', '拉萨'],
+				['得州', '华盛顿', '纽约', '阿拉斯加']
+			],
+			titleVal: '',
+			textVal: '',
+			// switchval: '',
+			fileList1: [
+				{
+					url: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/shouyeTJ.png'
+				},
+				{
+					url: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/cs_shouye_tp.png'
+				}
+			]
+		};
+	},
+	onLoad() {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+	},
+	computed: {
+		uploadNumber() {
+			return this.fileList1.length;
+		}
+	},
+	methods: {
+		fenquBtn() {
+			// this.show = true;
+			this.showTanCeng = true;
+		},
+		// 关闭标签
+		closeBtn(item) {
+			console.log(item);
+			this.tags.splice(this.tags.indexOf(item), 1);
+		},
+		// 分区组件方法
+		changeHandler(e) {
+			const {
+				columnIndex,
+				value,
+				values, // values为当前变化列的数组内容
+				index,
+				// 微信小程序无法将picker实例传出来,只能通过ref操作
+				picker = this.$refs.uPicker
+			} = e;
+			// 当第一列值发生变化时,变化第二列(后一列)对应的选项
+			if (columnIndex === 0) {
+				// picker为选择器this实例,变化第二列对应的选项
+				picker.setColumnValues(1, this.columnData[index]);
+			}
+		},
+		//// 分区组件方法 回调参数为包含columnIndex、value、values
+		confirm(e) {
+			console.log('confirm', e.value[0]);
+			this.show = false;
+		},
+		// change(e) {
+		// 	console.log('change', e);
+		// },
+		// 删除图片
+		deletePic(event) {
+			console.log(event, 'event');
+			this[`fileList${event.name}`].splice(event.index, 1);
+		},
+		// 新增图片
+		async afterRead(event) {
+			// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+			let lists = [].concat(event.file);
+			let fileListLen = this[`fileList${event.name}`].length;
+			lists.map((item) => {
+				this[`fileList${event.name}`].push({
+					...item,
+					status: 'uploading',
+					message: '上传中'
+				});
+			});
+			for (let i = 0; i < lists.length; i++) {
+				const result = await this.uploadFilePromise(lists[i].url);
+				let item = this[`fileList${event.name}`][fileListLen];
+				this[`fileList${event.name}`].splice(
+					fileListLen,
+					1,
+					Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					})
+				);
+				fileListLen++;
+			}
+		},
+		uploadFilePromise(url) {
+			return new Promise((resolve, reject) => {
+				let a = uni.uploadFile({
+					url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
+					filePath: url,
+					name: 'file',
+					formData: {
+						user: 'test'
+					},
+					success: (res) => {
+						setTimeout(() => {
+							resolve(res.data.data);
+						}, 1000);
+					}
+				});
+			});
+		},
+		radioClick(name) {
+			this.radios.map((item, index) => {
+				item.checked = index === name ? true : false;
+			});
+		},
+		isOk() {
+			if (this.titleVal == '' || this.titleVal == undefined) {
+				that.$common.errorToShow('请填写标题');
+			}
+			if (this.textVal == '' || this.textVal == undefined) {
+				that.$common.errorToShow('请输入内容');
+			} else {
+				// this.$api.contribute({}, function (res) {
+				// 	console.log(res, 6666);
+				// });
+			}
+		},
+		close() {
+			this.showTanCeng = false;
+			// console.log('close');
+		}
+	}
+};
+</script>
+
+<style>
+.banxin {
+	margin: 0 32rpx 0 32rpx;
+}
+.u-upload__button.data-v-69e2a36e {
+	background-color: #efefef !important;
+}
+.u-upload__deletable.data-v-69e2a36e {
+	width: 35rpx !important;
+	height: 35rpx !important;
+}
+.u-transition {
+	margin-right: 12rpx;
+}
+.tag_box {
+	display: flex;
+}
+/* .u-icon__icon.data-v-2ee87dc9 {
+	font-size: 25rpx !important;
+	line-height: 26rpx !important;
+} */
+.nav_fabu {
+	display: flex;
+	justify-content: space-evenly;
+	background-color: #ca5642;
+}
+.nav_left {
+	display: flex;
+	justify-content: start;
+	align-items: center;
+	width: 282rpx;
+	height: 123rpx;
+	font-size: 32rpx;
+	background: #f4f4f9;
+	border: 6px solid #ca5642;
+	border-radius: 20rpx;
+}
+.left_icon {
+	width: 50rpx;
+	height: 50rpx;
+	text-align: center;
+	line-height: 50rpx;
+	border-radius: 50%;
+	margin-left: 50rpx;
+	background-color: #ca5642;
+}
+.nav_right {
+	display: flex;
+	justify-content: start;
+	align-items: center;
+	width: 282rpx;
+	height: 123rpx;
+	font-size: 32rpx;
+	background: #f4f4f9;
+	border: 6px solid #ca5642;
+	border-radius: 20rpx;
+}
+.right_icon {
+	width: 50rpx;
+	height: 50rpx;
+	margin-left: 50rpx;
+	border-radius: 50%;
+	background-color: #4e7198;
+}
+
+.sc_box {
+	display: flex;
+	justify-content: space-between;
+	margin: 0 55rpx 40rpx 55rpx;
+	border-bottom: 1px #dedede solid;
+	height: 60rpx;
+}
+.sc_tp {
+	font-size: 30rpx;
+	color: #000000;
+}
+.fq_box {
+	display: flex;
+	justify-content: space-between;
+	margin: 0 32rpx 0 32rpx;
+	height: 105rpx;
+	align-items: center;
+}
+.box {
+	background-color: #ffffff;
+	padding-top: 20rpx;
+	padding-bottom: 30rpx;
+}
+.bq_box {
+	display: flex;
+	align-items: center;
+}
+.pl_box {
+	display: flex;
+	justify-content: space-between;
+	margin: 0 32rpx 0 32rpx;
+	height: 105rpx;
+	align-items: center;
+}
+.show_box {
+	width: 100%;
+	height: 500rpx;
+	padding: 20rpx;
+}
+.queren {
+	height: 70rpx;
+	background-color: #ca5642;
+	border-radius: 35rpx;
+	font-size: 30rpx;
+	color: #ffffff;
+	text-align: center;
+	line-height: 68rpx;
+	margin: 0 32rpx 0 32rpx;
+}
+.box_ok {
+	line-height: 50rpx;
+	text-align: center;
+	color: #ffffff;
+	width: 93rpx;
+	height: 52rpx;
+	background: #ca5642;
+	border-radius: 26rpx;
+}
+.box_fenqu {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	border-radius: 20rpx;
+	margin-top: 20rpx;
+	height: 105rpx;
+	background-color: #ffffff;
+	font-size: 30rpx;
+	padding: 20rpx;
+}
+.box_tj {
+	height: 300rpx;
+	border-radius: 20rpx;
+	background-color: #ffffff;
+	margin-top: 20rpx;
+	padding: 20rpx;
+}
+</style>

+ 2 - 0
components/course-item/course-item.vue

@@ -43,6 +43,8 @@ export default {
 	methods: {
 		onJumpDetail() {
 			console.log(11);
+			console.log(this.item, 565656);
+
 			uni.navigateTo({
 				url: '/pages/course/detail?cid=' + this.item.id
 			});

+ 75 - 0
components/likeComponent/likeComponent.vue

@@ -0,0 +1,75 @@
+<template>
+	<view>
+		<view
+			class=""
+			style="display: flex; align-items: center; justify-content: space-evenly; height: 40rpx; width: 100rpx; border-radius: 30rpx; background-color: rgb(253 0 0 / 60%)"
+			@click="likeBtn"
+		>
+			<uni-icons v-if="list.is_like > 0" type="heart-filled" color="red" size="20"></uni-icons>
+			<uni-icons v-else type="heart-filled" color="#f8f8f8" size="20"></uni-icons>
+			<text style="font-size: 28rpx">{{ list.likes }}</text>
+		</view>
+	</view>
+</template>
+
+<script>
+import { like, unLike } from '@/config/api.js';
+let that;
+export default {
+	name: 'likeComponent',
+	props: {
+		list: {
+			type: [Object, Array],
+			default: null
+		}
+	},
+	data() {
+		return {
+			main_body_id: ''
+		};
+	},
+	created() {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+	},
+	onLoad(e) {},
+	methods: {
+		// 点赞
+		async likeBtn(i) {
+			if (this.list.is_like == 0) {
+				await like(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_like = 1;
+							that.list.likes++;
+						});
+						that.$common.successToShow('成功点赞');
+					}
+				);
+			} else {
+				await unLike(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_like = 0;
+							that.list.likes--;
+						});
+
+						that.$common.successToShow('取消点赞');
+					}
+				);
+			}
+			this.$emit('price', this.list);
+		}
+	}
+};
+</script>
+
+<style></style>

+ 1 - 1
components/mn_yindaoye.vue

@@ -65,7 +65,7 @@ export default {
 	width: 100rpx;
 	border-radius: 20rpx;
 	position: absolute;
-	top: 160rpx;
+	top: 180rpx;
 	right: 38rpx;
 	text-align: center;
 	background-color: rgba(0, 0, 0, 0.3);

+ 5 - 5
components/mntabBar/mntabBar.vue

@@ -4,14 +4,14 @@
 		<view class="cu-bar tabbar bg-gray shadow foot">
 			<view class="action" :class="footerTab == '0' ? 'text-red' : 'text-black'" @tap="clickTabPath('/pages/index/index')">
 				<!-- <u-icon name="https://huli-app.wenlvti.net/app_static/minnanhun/image/home_a.png" color="#a49086" size="20" labelPos="bottom"></u-icon> -->
-				<image style="width: 56rpx; height: 40rpx" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/home_a.png" mode=""></image>
+				<image style="width: 32rpx; height: 30rpx" src="/static/image/home_a.png" mode=""></image>
 				<view class="">首页</view>
 			</view>
 
 			<view class="action" :class="footerTab == '1' ? 'text-red' : 'text-black'" @tap="clickTabPath('/pages/jiyi/jiyi')">
 				<!-- <u-icon name="https://huli-app.wenlvti.net/app_static/minnanhun/image/commossion_a.png" color="#a49086" size="20" labelPos="bottom"></u-icon> -->
 
-				<image style="width: 56rpx; height: 40rpx" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/commossion_a.png" mode=""></image>
+				<image style="width: 32rpx; height: 30rpx" src="/static/image/commossion_a.png" mode=""></image>
 				<view class="">记忆</view>
 			</view>
 
@@ -22,7 +22,7 @@
 						labelSize="22rpx"
 						space="10rpx"
 						:labelColor="footerTab == '2' ? '#CA5642' : '#666666'"
-						name="https://huli-app.wenlvti.net/app_static/minnanhun/image/wajue.png"
+						name="/static/image/wajue.png"
 						label="传承"
 						labelPos="bottom"
 					></u-icon>
@@ -31,13 +31,13 @@
 
 			<view class="action" :class="footerTab == '3' ? 'text-red' : 'text-black'" @tap="clickTabPath('/pages/xueYuan/xueYuan')">
 				<!-- <u-icon name="https://huli-app.wenlvti.net/app_static/minnanhun/image/invite_a.png" color="#a49086" size="20" labelPos="bottom"></u-icon> -->
-				<image style="width: 56rpx; height: 40rpx" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/invite_a.png" mode=""></image>
+				<image style="width: 40rpx; height: 36rpx" src="/static/image/invite_a.png.png" mode=""></image>
 				<view class="">学院</view>
 			</view>
 
 			<view class="action" :class="footerTab == '4' ? 'text-red' : 'text-black'" @tap="clickTabPath('/pages/user/index')">
 				<!-- <u-icon name="https://huli-app.wenlvti.net/app_static/minnanhun/image/mine_a.png" color="#a49086" size="20" labelPos="bottom"></u-icon> -->
-				<image style="width: 56rpx; height: 40rpx" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/mine_a.png" mode=""></image>
+				<image style="width: 40rpx; height: 36rpx" src="/static/image/mine_a.png" mode=""></image>
 				<view class="">我的</view>
 			</view>
 		</view>

+ 71 - 11
config/api.js

@@ -5,14 +5,15 @@ import {
 import * as common from './common.js' //引入common
 import * as db from './db.js' //引入common
 // 需要登陆的,都写到这里,否则就是不需要登陆的接口
-let methodsToken = ['profile', 'refreshUser', 'wxLogin', 'changeMobile', 'getWuyuanUser', 'getContentDetail',
-	'addCart', 'previewOrder',
+let methodsToken = ['profile', 'refreshUser', 'wxLogin', 'changeMobile', 'getContentDetail',
+	'addCart', 'previewOrder', 'editMainBodyUser', 'like', 'unLike', 'getUserLike', 'getUserCollect', 'collect',
+	'uncollect'
 ];
 const post = (method, data, callback, type, orgurl) => {
 	let userToken = '';
 	let auth = '';
 	// 判断token是否存在
-	// console.log("method: ", method);
+	// console.log("method: ", method); 
 	if (methodsToken.indexOf(method) >= 0) {
 		// 获取用户token
 		let auth = db.get("auth");
@@ -78,6 +79,7 @@ const post = (method, data, callback, type, orgurl) => {
 			callback(result);
 		},
 		fail: (error) => {
+			console.log(error)
 			uni.hideLoading();
 			if (error && error.response) {
 				showError(error.response);
@@ -242,7 +244,7 @@ const syncpost = (f, m, d) => {
 
 }
 // 登录
-export const third = (data, callback) => post('third', data, callback, 'discover/user/third');
+export const third = (data, callback) => post('third', data, callback, 'minnansoul/main_body_user');
 // 用户绑定手机
 export const bindphone = (data, callback) => post('bind', data, callback, 'discover/User');
 // 修改用户信息
@@ -250,10 +252,9 @@ export const profile = (data, callback) => post('profile', data, callback, 'disc
 // 发送验证码
 export const sendSmsVerify = (data, callback) => post('sendSmsVerify', data, callback, 'discover/User');
 // 刷新用户
-export const refreshUser = (data, callback) => post('refreshUser', data, callback, 'discover/User');
-
+export const refreshUser = (data, callback) => post('refreshUser', data, callback, 'minnansoul/main_body_user');
 // 注册
-export const register = (data, callback) => post('register', data, callback, 'discover/User');
+// export const register = (data, callback) => post('register', data, callback, 'discover/User');
 // 登录
 export const login = (data, callback) => post('login', data, callback, 'discover/User');
 // 退出登录
@@ -331,9 +332,10 @@ function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
 }
 
 //取轮播图
-export const getBannerList = (data, callback) => get('/api/wuyuan/swiper_icon/lists' + queryParams(data, true),
-	callback);
-export const getWuyuanUser = (data, callback) => post('getWuyuanUser', data, callback, 'wuyuan/user');
+export const getIndexBanner = (data, callback) => get('api/minnansoul/banner_function/getIndexBanner' + queryParams(
+	data,
+	true), callback);
+// export const getWuyuanUser = (data, callback) => post('getWuyuanUser', data, callback, 'wuyuan/user');
 // 学院底部课程
 export const getHomeData = (data, callback) => post('getHomeData', data, callback, '',
 	'addons/yuneducation/page/getHomeData');
@@ -382,4 +384,62 @@ export const scheduleStartLearn = (data, callback) => post('startLearn', data, c
 	'addons/yuneducation/schedule/startLearn');
 // 获取我的课程列表
 export const getMineCourseList = (data, callback) => post('getMineCourseList', data, callback, '',
-	'addons/yuneducation/course/getMineCourseList');
+	'addons/yuneducation/course/getMineCourseList');
+// 城市主体列表
+export const getCity = (data, callback) => get('api/minnansoul/main_body/getCity' + queryParams(data, true),
+	callback);
+//获取主体用户信息
+export const getMainBodyUser = (data, callback) => post('getMainBodyUser', data, callback,
+	'minnansoul/main_body_user');
+//修改主体用户信息
+export const editMainBodyUser = (data, callback) => post('editMainBodyUser', data, callback,
+	'minnansoul/main_body_user');
+// 首页功能集
+export const getIndexFunction = (data, callback) => get('api/minnansoul/banner_function/getIndexFunction' + queryParams(
+	data,
+	true), callback);
+// 获取带标志的内容列表
+export const getFlagList = (data, callback) => post('getFlagList', data, callback,
+	'minnansoul/content');
+// 模型的主体栏目列表
+export const getColumnList = (data, callback) => post('getColumnList', data, callback,
+	'minnansoul/main_body_column');
+// 模型内容列表
+export const getContentList = (data, callback) => post('getContentList', data, callback,
+	'minnansoul/content');
+// 模型主体栏目内容列表
+export const getMainBodyColumnContentList = (data, callback) => post('getMainBodyColumnContentList', data, callback,
+	'minnansoul/content');
+// 内容详情
+export const getContentDetails = (data, callback) => post('getContentDetail', data, callback,
+	'minnansoul/content');
+//史馆列表
+export const getHistoryMuseum = (data, callback) => post('getHistoryMuseum', data, callback,
+	'minnansoul/main_body');
+//史馆详情
+export const getDetail = (data, callback) => post('getDetail', data, callback,
+	'minnansoul/main_body');
+//史馆列表分类列表
+export const getCategoryLists = (data, callback) => post('getCategoryList', data, callback,
+	'minnansoul/category');
+//点赞
+export const like = (data, callback) => post('like', data, callback,
+	'minnansoul/main_body_user');
+//取消点赞
+export const unLike = (data, callback) => post('unLike', data, callback,
+	'minnansoul/main_body_user');
+//点赞内容列表
+export const getUserLike = (data, callback) => post('getUserLike', data, callback,
+	'minnansoul/main_body_user');
+//收藏
+export const collect = (data, callback) => post('collect', data, callback,
+	'minnansoul/main_body_user');
+//取消收藏
+export const uncollect = (data, callback) => post('uncollect', data, callback,
+	'minnansoul/main_body_user');
+//收藏内容列表
+export const getUserCollect = (data, callback) => post('getUserCollect', data, callback,
+	'minnansoul/main_body_user');
+//投稿
+export const contribute = (data, callback) => post('contribute', data, callback,
+	'minnansoul/content');

文件差異過大導致無法顯示
+ 8 - 11
config/config.js


+ 22 - 20
index_fenbao/cs_liebiao/cs_liebiao.vue

@@ -11,7 +11,7 @@
 				<view class="" style="display: flex">
 					<view @click="show = true" class="fy_cs">
 						<uni-icons type="location" size="20"></uni-icons>
-						<text style="margin: 0 10rpx 0 10rpx">{{ columnsItem }}</text>
+						<text style="width: 60rpx; margin: 0 10rpx 0 10rpx">{{ columnsItem }}</text>
 						<uni-icons type="bottom" size="20"></uni-icons>
 					</view>
 
@@ -19,6 +19,7 @@
 
 					<view class="">
 						<u-tabs
+							keyName="title"
 							:list="tabList"
 							:lineWidth="0"
 							:activeStyle="{
@@ -44,39 +45,40 @@
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
 			show: false,
+			main_body_id: '' /* 主体id */,
 			columns: [['厦门', '泉州', '福州']],
 			columnsItem: '厦门' /* 选中的城市 */,
-			tabList: [
-				{
-					name: '湖里街道',
-					id: 0
-				},
-				{
-					name: '江头街道',
-					id: 1
-				},
-				{
-					name: '殿前街道',
-					id: 2
-				},
-
-				{
-					name: '江头街道',
-					id: 3
-				}
-			]
+			tabList: []
 		};
 	},
+	onLoad() {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getCategoryLists();
+	},
 	methods: {
 		// 选择城市
 		yf_isok(e) {
 			console.log(e);
 			this.columnsItem = e.value;
 			this.show = false;
+		},
+		getCategoryLists() {
+			this.$api.getCategoryLists(
+				{
+					main_body_id: this.main_body_id
+				},
+				function (res) {
+					console.log(res);
+					that.tabList = res.data.region_list;
+					console.log(that.tabList);
+				}
+			);
 		}
 	}
 };

+ 73 - 49
index_fenbao/feiyi/feiyi.vue

@@ -29,9 +29,7 @@
 					<text style="margin: 0 10rpx 0 10rpx">{{ columnsItem }}</text>
 					<uni-icons type="bottom" size="20"></uni-icons>
 				</view>
-
 				<!-- 选择城市end -->
-
 				<view class="">
 					<u-tabs
 						:list="tabList"
@@ -54,20 +52,20 @@
 		</view>
 		<!-- 内容 -->
 		<view class="sh_xs banxin">
-			<view class="sh_xs_item" v-for="item in twList" :key="item">
+			<view @click="detailsBtn(index)" class="sh_xs_item" v-for="(item, index) in projectList" :key="item">
 				<view class="" style="width: 325rpx; height: 180rpx; border-radius: 10rpx">
-					<image style="width: 100%; height: 100%" :src="item.img"></image>
+					<image style="width: 100%; height: 100%" :src="item.thumbnail"></image>
 				</view>
 				<view class="">{{ item.title }}</view>
 				<view class="ms_dianzan">
 					<view class="">
 						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
+						<text>{{ item.collects }}</text>
 					</view>
 
-					<view class="">
+					<view class="" style="display: flex; align-items: center; justify-content: space-evenly">
 						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
+						<text>{{ item.likes }}</text>
 					</view>
 				</view>
 			</view>
@@ -76,9 +74,14 @@
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
+			isLoading: false, // 节流阀 默认为关闭状态
+			main_body_id: '',
+			page: '1',
+			main_body_id: '',
 			show: false,
 			columns: [['厦门', '泉州', '福州']],
 			columnsItem: '厦门' /* 选中的城市 */,
@@ -94,49 +97,28 @@ export default {
 					image: 'https://feicheng.16fw.cn:1443/uploads/20230403/1cf5f3c9c6b28fcbd3a983068f06d257.jpg'
 				}
 			],
-			tabList: [
-				{
-					name: '民俗文学',
-					id: 0
-				},
-				{
-					name: '江头街道',
-					id: 1
-				},
-				{
-					name: '殿前街道',
-					id: 2
-				},
-				{
-					name: '民俗文学',
-					id: 3
-				},
-				{
-					name: '江头街道',
-					id: 4
-				}
-			],
-			twList: [
-				{
-					img: 'https://feicheng.16fw.cn:1443/uploads/20230403/133f120ee8e260640890dc2a7fe97c1f.png',
-					title: '闽南传统金银制作技艺'
-				},
-				{
-					img: 'https://feicheng.16fw.cn:1443/uploads/20230524/fe15cad25eaa4cf09236b70235fc1f14.png',
-					title: '开厦上柱国祠陈氏祭祖习俗'
-				},
-				{
-					img: 'https://feicheng.16fw.cn:1443/uploads/20230403/1cf5f3c9c6b28fcbd3a983068f06d257.jpg',
-					title: '沈氏漆线雕'
-				},
-
-				{
-					img: 'https://feicheng.16fw.cn:1443/uploads/20230524/6eefa546579b4bee7b1609cce87ba79f.png',
-					title: '闽台送王船习俗'
-				}
-			]
+			tabList: [],
+			projectList: []
 		};
 	},
+	onLoad(o) {
+		that = this;
+		this.model_id = o.id;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getColumnList(o.id);
+		this.getContentList(o.id);
+	},
+	onReachBottom() {
+		if (this.isLoading) {
+			return;
+		} else {
+			// 每次触发上拉触底 请求的页码 自加一
+			this.page++;
+
+			// 重新请求数据
+			this.getContentList();
+		}
+	},
 	methods: {
 		fyTab(item) {
 			this.tabactive = item.id;
@@ -147,6 +129,49 @@ export default {
 			console.log(e);
 			this.columnsItem = e.value;
 			this.show = false;
+		},
+		detailsBtn(i) {
+			uni.navigateTo({
+				url: this.projectList[i].page
+			});
+		},
+		getColumnList(id) {
+			this.$api.getColumnList(
+				{
+					model_id: id,
+					main_body_id: this.main_body_id
+				},
+				function (res) {
+					let a = {
+						diyname: 'crzx',
+						id: '',
+						image: '',
+						name: '全部'
+					};
+					that.tabList = res.data;
+					that.tabList.unshift(a);
+				}
+			);
+		},
+		// 栏目内容列表
+		getContentList(id) {
+			// 打开节流阀
+			this.isLoading = true;
+
+			this.$api.getContentList(
+				{
+					model_id: this.model_id,
+					main_body_id: this.main_body_id,
+					page: this.page,
+					pageSize: '10'
+				},
+				function (res) {
+					console.log(res, '内容列表');
+					// 关闭节流阀
+					that.isLoading = false;
+					that.projectList = [...that.projectList, ...res.data];
+				}
+			);
 		}
 	}
 };
@@ -207,7 +232,6 @@ export default {
 .fy_cs {
 	display: flex;
 	align-items: center;
-	width: 255rpx;
 	height: 50rpx;
 	margin-top: 20rpx;
 	/* background-color: antiquewhite; */

+ 128 - 0
index_fenbao/feiyi/feiyiXQ.vue

@@ -0,0 +1,128 @@
+<template>
+	<view class="body">
+		<u-navbar :autoBack="true" :title="list.title" bgColor="rgba(255,255,255,0.3)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view>
+			<u-swiper
+				:list="imageList"
+				imgMode="aspectFill"
+				:height="240"
+				:indicator="true"
+				:autoplay="true"
+				:circular="true"
+				indicatorStyle="bottom: 25px"
+				@click="bannerClick"
+				indicatorMode="dot"
+				indicatorActiveColor="#fff"
+				indicatorInactiveColor="rgba(255, 255, 255, 0.35)"
+			></u-swiper>
+		</view>
+		<view class="box">
+			<view class="" style="display: flex; align-items: center; color: #640000; font-size: 24rpx; margin-left: 28rpx; margin-top: 30rpx">
+				<view style="margin-right: 20rpx; font-weight: 700; font-size: 36rpx">
+					{{ list.title }}
+				</view>
+				<likeComponent @price="doChange" :list="list"></likeComponent>
+			</view>
+
+			<view class="info">
+				<view>项目类型:{{ list.ich_type }}</view>
+
+				<view style="width: 40%">项目等级:{{ list.level }}</view>
+			</view>
+
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">详细介绍</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.intro"></u-parse>
+			</view>
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">传承人介绍</view>
+			</view>
+			<view class="text" style="letter-spacing: 0.2em">
+				<u-parse :content="list.inheritor"></u-parse>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that = this;
+export default {
+	data() {
+		return {
+			main_body_id: '',
+			time: null,
+			timestamp: '1581170184',
+			list: [],
+			imageList: [
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt2.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt1.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt3.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt4.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt5.png'
+			]
+		};
+	},
+	onLoad(e) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getContentDetails(e.id);
+	},
+
+	methods: {
+		// 详情
+		getContentDetails(id) {
+			this.$api.getContentDetails(
+				{
+					main_body_id: this.main_body_id,
+					id: id
+				},
+				function (res) {
+					that.list = res.data;
+					console.log(that.list, 'list');
+				}
+			);
+		},
+		doChange(list) {
+			this.list = list;
+		}
+	}
+};
+</script>
+
+<style>
+/deep/.u-swiper-indicator__wrapper__dot--active {
+	width: 5px !important;
+}
+.box {
+	height: auto;
+	width: 100%;
+	background-image: url('https://huli-app.wenlvti.net/app_static/wuyuan/static/shouhu/wyj-feiyi3-001.png');
+	background-size: 100% 100%;
+	background-attachment: fixed;
+	border-radius: 32rpx 32rpx 0 0;
+	position: relative;
+	top: -40rpx;
+	padding-top: 10rpx;
+}
+.u-info {
+	margin: 20rpx;
+}
+.text {
+	margin: 20rpx;
+}
+.info {
+	/* display: flex;
+	justify-content: space-between;
+	flex-wrap: wrap; */
+	margin: 20rpx;
+	margin-top: 16rpx;
+}
+.info > view {
+	margin-top: 20rpx;
+	font-size: 28rpx;
+	margin-left: 8rpx;
+	color: #940000;
+}
+</style>

+ 218 - 0
index_fenbao/jianzhu/jianZhuXQ.vue

@@ -0,0 +1,218 @@
+<template>
+	<view class="body">
+		<u-navbar :autoBack="true" :title="list.title" bgColor="rgba(255,255,255,0.3)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view>
+			<u-swiper
+				:list="imageList"
+				imgMode="aspectFill"
+				:height="200"
+				:indicator="true"
+				:autoplay="true"
+				:circular="true"
+				indicatorStyle="bottom: 25px"
+				@click="bannerClick"
+				indicatorMode="dot"
+				indicatorActiveColor="#fff"
+				indicatorInactiveColor="rgba(255, 255, 255, 0.35)"
+			></u-swiper>
+		</view>
+		<view class="box">
+			<view class="" style="display: flex; align-items: center; color: #640000; font-size: 24rpx; margin-left: 28rpx; margin-top: 30rpx">
+				<view style="margin-right: 20rpx; font-weight: 700; font-size: 36rpx">
+					{{ list.title }}
+				</view>
+				<view
+					class=""
+					style="
+						display: flex;
+						align-items: center;
+						justify-content: space-evenly;
+						height: 40rpx;
+						width: 100rpx;
+						border-radius: 30rpx;
+						background-color: rgb(253 0 0 / 60%);
+					"
+					@click="likeBtn"
+				>
+					<uni-icons v-if="list.is_like > 0" type="heart-filled" color="red" size="20"></uni-icons>
+					<uni-icons v-else type="heart-filled" color="#f8f8f8" size="20"></uni-icons>
+					<text style="font-size: 28rpx">{{ list.likes }}</text>
+				</view>
+			</view>
+
+			<view class="info">
+				<view style="width: 40%">始建年代:{{ list.age }}</view>
+
+				<view style="width: 40%">文物类型:{{ list.cr_type }}</view>
+
+				<view style="width: 40%">文物等级:{{ list.level }}</view>
+
+				<view style="width: 40%">所属区域:{{ list.region }}</view>
+			</view>
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 36rpx">地址</view>
+			</view>
+			<view
+				class=""
+				style="
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					height: 80rpx;
+					margin-left: 30rpx;
+					margin-top: 15rpx;
+					color: green;
+					background-color: #ffffff;
+				"
+			>
+				<view class="text flex" style="background-color: aliceblue">{{ list.address }}</view>
+				<view class="">
+					<uni-icons type="location" size="20"></uni-icons>
+				</view>
+			</view>
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">保护区域</view>
+			</view>
+			<view class="u-info">
+				<u-parse :content="list.protected_area"></u-parse>
+			</view>
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">介绍</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.intro"></u-parse>
+			</view>
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">建筑环境</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.environment"></u-parse>
+			</view>
+
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">建筑描述</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.description ? list.description : '暂无描述'"></u-parse>
+			</view>
+
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">文物价值</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.description.value ? list.description.value : '暂无评估'"></u-parse>
+			</view>
+
+			<view style="color: #940000; font-size: 24rpx; margin-left: 24rpx; display: flex; align-items: center; margin-top: 40rpx">
+				<view style="font-weight: 700; font-size: 18px">文物责任人</view>
+			</view>
+			<view class="text">
+				<u-parse :content="list.director"></u-parse>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that = this;
+export default {
+	data() {
+		return {
+			main_body_id: '',
+			list: [],
+			imageList: [
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt2.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt1.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt3.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt4.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt5.png'
+			]
+		};
+	},
+	onLoad(e) {
+		that = this;
+		console.log(e);
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getContentDetails(e.id);
+	},
+
+	methods: {
+		// 详情
+		getContentDetails(id) {
+			this.$api.getContentDetails(
+				{
+					main_body_id: this.main_body_id,
+					id: id
+				},
+				function (res) {
+					that.list = res.data;
+				}
+			);
+		},
+		// 点赞
+		likeBtn(i) {
+			if (this.list.is_like == 0) {
+				this.$api.like(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list.id
+					},
+					function (res) {
+						that.list.is_like = 1;
+						that.list.likes++;
+						that.$common.successToShow('成功点赞');
+					}
+				);
+			} else {
+				that.$api.unLike(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list.id
+					},
+					function (res) {
+						that.list.is_like = 0;
+						that.list.likes--;
+						that.$common.successToShow('取消点赞');
+					}
+				);
+			}
+		}
+	}
+};
+</script>
+
+<style>
+/deep/.u-swiper-indicator__wrapper__dot--active {
+	width: 5px !important;
+}
+.box {
+	height: auto;
+	width: 100%;
+	background-image: url('https://huli-app.wenlvti.net/app_static/wuyuan/static/shouhu/wyj-feiyi3-001.png');
+	background-size: 100% 100%;
+	background-attachment: fixed;
+	border-radius: 32rpx 32rpx 0 0;
+	position: relative;
+	top: -40rpx;
+	padding-top: 10rpx;
+}
+.u-info {
+	margin: 20rpx;
+}
+.text {
+	margin: 20rpx;
+}
+.info {
+	display: flex;
+	justify-content: space-between;
+	flex-wrap: wrap;
+	margin: 20rpx;
+	margin-top: 16rpx;
+}
+.info > view {
+	margin-top: 20rpx;
+	font-size: 28rpx;
+	margin-left: 8rpx;
+	color: #940000;
+}
+</style>

+ 142 - 0
index_fenbao/jianzhu/jianZhu_index.vue

@@ -0,0 +1,142 @@
+<template>
+	<view class="body2">
+		<u-navbar :autoBack="true" title="建筑文化" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view class="jz_swiper">
+			<u-swiper
+				:list="list1"
+				height="335rpx"
+				:indicator="true"
+				:autoplay="true"
+				indicatorMode="dot"
+				indicatorActiveColor="#fff"
+				indicatorInactiveColor="rgba(255, 255, 255, 0.35)"
+				:circular="true"
+				indicatorStyle="bottom: 10px"
+			></u-swiper>
+		</view>
+		<view class="tit">建筑地图</view>
+		<view class="map_box" @click="navMap">
+			<image style="width: 100%; height: 100%" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/map2.jpg"></image>
+		</view>
+		<view class="tit">建筑简介</view>
+		<view class="jj_box">
+			<view class="jj_left">
+				闽南建筑风格独特。闽南建筑风格以红墙、红瓦、燕尾脊为特征,给人以鲜明、热烈的视觉感受。建筑中大量使用装饰性构件,如砖雕、石雕、木雕等,这些雕刻工艺精湛,图案丰富,具有很高的艺术价值。同时,建筑内部的布局和装饰也充满了闽南文化的特色,如“出砖入石”的墙体、精细的石雕和木雕、富有地方特色的彩绘等。
+			</view>
+			<view class="jj_right">
+				<view class="right_top">
+					<image style="width: 100%; height: 100%" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/tv5.jpg"></image>
+				</view>
+				<view class="right_btm"><image style="width: 100%; height: 100%" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/tv7.jpg"></image></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that;
+export default {
+	data() {
+		return {
+			isLoading: false, // 节流阀 默认为关闭状态
+			main_body_id: '',
+			model_id: '',
+
+			list1: [
+				'https://img1.baidu.com/it/u=3551075903,1493549593&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500',
+				'https://img0.baidu.com/it/u=1667631211,245764236&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=357',
+				'https://img1.baidu.com/it/u=2554021422,1871009309&fm=253&fmt=auto&app=138&f=JPEG?w=700&h=500'
+			]
+		};
+	},
+	onLoad(o) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+	},
+
+	methods: {
+		navMap() {
+			uni.navigateTo({
+				url: '/index_fenbao/jianzhu/map_page'
+			});
+		},
+
+		// 建筑详情
+		buildBtn(i) {
+			uni.navigateTo({
+				url: this.jianZhuList[i].page
+			});
+		}
+	}
+};
+</script>
+
+<style>
+.body2 {
+	background-size: 100% 100%;
+	background-attachment: fixed;
+	background-repeat: repeat-y;
+	background-color: #f8eddf;
+	padding-bottom: 50rpx;
+}
+/deep/.u-swiper-indicator__wrapper__dot--active {
+	width: 5px !important;
+}
+
+.jz_item {
+	width: 686rpx;
+	height: 345rpx;
+	border-radius: 26rpx 26rpx 0rpx 0rpx;
+}
+.tit {
+	width: 300rpx;
+	height: 60rpx;
+	margin: auto;
+	text-align: center;
+	line-height: 60rpx;
+	margin-top: 20rpx;
+	margin-bottom: 20rpx;
+	font-size: 28rpx;
+	color: #f8eddf;
+	background-image: url('/static/image/jz_bg.png');
+	background-size: 100% 100%;
+}
+.map_box {
+	width: 700rpx;
+	height: 400rpx;
+	border: #873b3f 8rpx solid;
+	margin: auto;
+}
+.jj_box {
+	width: 700rpx;
+	height: 600rpx;
+	display: flex;
+	text-indent: 2em;
+	line-height: 40rpx;
+	font-size: 28rpx;
+	color: aliceblue;
+	margin-left: 26rpx;
+}
+.jj_left {
+	width: 50%;
+	background-color: #873b3f;
+}
+.jj_right {
+	width: 50%;
+	height: 100%;
+	margin-left: 20rpx;
+}
+.right_top {
+	display: flex;
+	width: 350rpx;
+	height: 290rpx;
+	background-color: #873b3f;
+}
+.right_btm {
+	display: flex;
+	width: 350rpx;
+	height: 290rpx;
+	margin-top: 20rpx;
+	background-color: #873b3f;
+}
+</style>

+ 80 - 16
index_fenbao/jianzhu/jianzhu.vue

@@ -29,13 +29,16 @@
 			></u-tabs>
 		</view>
 		<view class="banxin">
-			<view style="margin-bottom: 30rpx" v-for="item in jianZhuList" :key="item">
-				<view class="jz_item">
-					<image style="width: 100%; height: 100%" :src="item.img"></image>
+			<view style="margin-bottom: 30rpx" v-for="(item, index) in jianZhuList" :key="item">
+				<view @click="buildBtn(index)" class="jz_item">
+					<image style="width: 100%; height: 100%" :src="item.thumbnail"></image>
 				</view>
-				<view class="" style="display: flex; justify-content: space-between">
-					<text>{{ item.title }}</text>
-					<uni-icons style="margin-top: 5rpx" type="heart" size="20"></uni-icons>
+				<view class="" style="width: 650rpx; display: flex; justify-content: space-between">
+					<view>{{ item.title }}</view>
+					<view class="" style="display: flex; align-items: center; justify-content: space-evenly">
+						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
+						<text style="font-size: 28rpx">{{ item.likes }}</text>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -43,9 +46,14 @@
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
+			isLoading: false, // 节流阀 默认为关闭状态
+			main_body_id: '',
+			page: '1',
+			model_id: '',
 			tabImg: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/tab.png',
 			list1: [
 				'https://img1.baidu.com/it/u=3551075903,1493549593&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500',
@@ -74,20 +82,76 @@ export default {
 					tabid: 5
 				}
 			],
-			jianZhuList: [
-				{
-					img: 'https://img2.baidu.com/it/u=1282947730,847518852&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=390',
+			jianZhuList: []
+		};
+	},
+	onLoad(o) {
+		console.log(o, 'ooooooooo');
+		that = this;
+		this.model_id = o.id;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getColumnList(o.id);
+		this.getContentList(o.id);
+	},
+
+	onReachBottom() {
+		if (this.isLoading) {
+			return;
+		} else {
+			// 每次触发上拉触底 请求的页码 自加一
+			this.page++;
 
-					title: '中国传统建筑文化——闽南地区的屋顶文化古建中国'
+			// 重新请求数据
+			this.getContentList();
+		}
+	},
+	methods: {
+		// 栏目列表
+		getColumnList(id) {
+			this.$api.getColumnList(
+				{
+					model_id: id,
+					main_body_id: this.main_body_id
 				},
+				function (res) {
+					let a = {
+						diyname: 'crzx',
+						id: '',
+						image: '',
+						name: '全部'
+					};
+					that.listTab = res.data;
+					that.listTab.unshift(a);
+					// console.log(that.listTab, '全部');
+				}
+			);
+		},
+		// 栏目内容列表
+		getContentList(id) {
+			this.isLoading = true;
+			this.$api.getContentList(
 				{
-					img: 'https://img1.baidu.com/it/u=3045646735,3994404954&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=304',
-					title: '雕梁画栋的闽南建筑,一砖一瓦都体现着古人对美的追求'
+					model_id: this.model_id,
+					main_body_id: this.main_body_id,
+					page: this.page,
+					pageSize: '10'
+				},
+				function (res) {
+					// 关闭节流阀
+					that.isLoading = false;
+					// console.log(res, '内容列表');
+					that.jianZhuList = [...that.jianZhuList, ...res.data];
 				}
-			]
-		};
-	},
-	methods: {}
+			);
+		},
+
+		// 建筑详情
+		buildBtn(i) {
+			uni.navigateTo({
+				url: this.jianZhuList[i].page
+			});
+		}
+	}
 };
 </script>
 

+ 106 - 0
index_fenbao/jianzhu/map_page.vue

@@ -0,0 +1,106 @@
+<template>
+	<view class="body2">
+		<u-navbar :autoBack="true" title="地图" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<map
+			id="map"
+			:enable-rotate="true"
+			:enable-3D="true"
+			:latitude="latitude"
+			:longitude="longitude"
+			:markers="marker"
+			:scale="scale"
+			@markertap="markertap"
+			style="width: 100%; height: 100%"
+		></map>
+	</view>
+</template>
+
+<script>
+let that;
+export default {
+	data() {
+		return {
+			isLoading: false, // 节流阀 默认为关闭状态
+			main_body_id: '',
+			model_id: '',
+			marker: [],
+			latitude: 24.511709899939145, //纬度
+			longitude: 118.14707269879153, //经度
+			scale: 13 //缩放级别,
+		};
+	},
+	onLoad(o) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		// this.model_id = o.id;
+		this.ditu();
+	},
+
+	methods: {
+		ditu(id) {
+			this.$api.getContentList(
+				{
+					model_id: '1',
+					main_body_id: '1',
+					page: 1,
+					pageSize: '12'
+				},
+				function (res) {
+					that.marker = [];
+					res.data.forEach((item, index) => {
+						// console.log(item, 'itemitem');
+						that.latitude = item.latitude;
+						that.longitude = item.longitude;
+						that.marker.push({
+							id: parseFloat(item.id),
+							latitude: parseFloat(item.latitude), //纬度
+							longitude: parseFloat(item.longitude), //经度
+							iconPath: '/static/image/icon_map.png', //显示的图标
+							width: 35, //宽
+							height: 35, //高
+							joinCluster: true,
+							title: item.title, //标注点名
+
+							label: {
+								//自定义标记点上方的文本
+								content: item.title, //文本
+								color: '#5c3c2e', //文字颜色
+								fontSize: 20, //文本大小
+								bgColor: 'rgba(0,0,0,.2)', // 背景颜色(半透明黑色)
+								borderRadius: 10, // 边框圆角
+								padding: [2, 2], // 内边距
+								textAlign: 'center', // 文本对齐方式
+								display: 'ALWAYS' // 始终显示标签
+							}
+						});
+					});
+				}
+			);
+		},
+		// 点击标记点时触发
+		markertap(e) {
+			console.log(e);
+			uni.navigateTo({
+				url: `/index_fenbao/jianzhu/jianZhuXQ?id=${e.target.markerId}`
+			});
+		},
+		// 建筑详情
+		buildBtn(i) {
+			uni.navigateTo({
+				url: this.jianZhuList[i].page
+			});
+		}
+	}
+};
+</script>
+
+<style>
+.body2 {
+	width: 100%;
+	height: 100%;
+}
+
+.banxin {
+	margin: 0 32rpx 0 32rpx;
+}
+</style>

+ 72 - 96
index_fenbao/minNanyu/minNanyu.vue

@@ -14,88 +14,34 @@
 			></u-swiper>
 		</view>
 		<!--闽南语歌曲 -->
-		<view class="text-wrapper_7">
-			<text lines="1" class="text_4">闽南语歌曲</text>
-			<text lines="1" class="text_5" @click="yinPinLieBiao">查看更多》</text>
-		</view>
-		<view class="banxin">
-			<view class="content">
-				<!-- 下列代码未加规范,仅供参考,请勿模仿 -->
-				<scroll-view scroll-x style="display: flex; white-space: nowrap">
-					<view class="mn_container" v-for="item in mnGeQu" :key="item">
-						<view class="mn_box">
-							<image style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%" :src="item.img"></image>
-						</view>
-						<text class="mn_text">{{ item.titie }}</text>
-					</view>
-				</scroll-view>
-			</view>
-		</view>
-		<!--闽南语歌曲end -->
-		<!-- 戏曲 -->
-		<view class="text-wrapper_7">
-			<text lines="1" class="text_4">戏曲</text>
-			<text lines="1" class="text_5">查看更多》</text>
-		</view>
-		<view class="banxin">
-			<view class="content">
-				<!-- 下列代码未加规范,仅供参考,请勿模仿 -->
-				<scroll-view scroll-x style="display: flex; white-space: nowrap">
-					<view class="mn_container" v-for="item in mnXiQu" :key="item">
-						<view class="mn_box">
-							<image :src="item.img" style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%"></image>
-						</view>
-						<text class="mn_text">{{ item.titie }}</text>
-					</view>
-				</scroll-view>
+		<view class="" v-for="(item, index) in mnGeQu" :key="item.id">
+			<view class="text-wrapper_7">
+				<text lines="1" class="text_4">{{ item.name }}</text>
+				<text lines="1" class="text_5" @click="yinPinLieBiao">查看更多》</text>
 			</view>
-		</view>
-		<!-- 戏曲end -->
-		<!-- 俗语谚语歇后语 -->
-		<!-- <view class="text-wrapper_7">
-			<text lines="1" class="text_4">俗语谚语歇后语</text>
-			<text lines="1" class="text_5">查看更多》</text>
-		</view>
-		<view class="banxin">
-			<view class="content">
-			
-				<scroll-view scroll-x style="display: flex; white-space: nowrap">
-					<view class="mn_container" v-for="item in 6" :key="item">
-						<view class="mn_box">
-							<image src="/static/image/kctp.png" style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%"></image>
+			<view class="banxin">
+				<view class="content">
+					<scroll-view scroll-x style="display: flex; white-space: nowrap">
+						<view @click="videoBtn(index, index1)" class="mn_container" v-for="(item2, index1) in mnGeQu[index].content_list" :key="item">
+							<view class="mn_box">
+								<image :src="item2.thumbnail" style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%"></image>
+							</view>
+							<text class="mn_text">{{ item2.title }}</text>
 						</view>
-						<text class="mn_text">浪子回头金不换</text>
-					</view>
-				</scroll-view>
+					</scroll-view>
+				</view>
 			</view>
-		</view> -->
-		<!-- 俗语谚语歇后语end -->
-		<!--趣谈  -->
-		<!-- <view class="text-wrapper_7">
-			<text lines="1" class="text_4">趣谈</text>
-			<text lines="1" class="text_5">查看更多》</text>
 		</view>
-		<view class="banxin">
-			<view class="content">
-			
-				<scroll-view scroll-x style="display: flex; white-space: nowrap">
-					<view class="mn_container" v-for="item in 6">
-						<view class="mn_box">
-							<image src="/static/image/kctp.png" style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%"></image>
-						</view>
-						<text class="mn_text">浪子回头金不换</text>
-					</view>
-				</scroll-view>
-			</view>
-		</view> -->
-		<!-- 趣谈 -->
+		<!--闽南语歌曲end -->
 	</view>
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
+			main_body_id: '',
 			list1: [
 				{
 					image: 'https://speech.xmu.edu.cn/_upload/article/images/c0/fa/3ff524314ed9992200a0db99bb7b/824d7b82-5e07-4857-9c35-5d1219bc710f.jpg',
@@ -111,40 +57,69 @@ export default {
 				}
 			],
 			// 闽南歌曲
-			mnGeQu: [
-				{
-					img: 'http://t14.baidu.com/it/u=2294107695,3570586599&fm=224&app=112&f=JPEG?w=500&h=500',
-					titie: '闽南经典歌曲'
-				},
+			mnGeQu: []
+		};
+	},
+	onLoad(o) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getColumnList(o.id);
+		this.getContentList(o.id);
+		this.getMainBodyColumnContentList(o.id);
+	},
+	methods: {
+		yinPinLieBiao() {
+			uni.navigateTo({
+				url: '/index_fenbao/minNanyu/yinPinLieBiao'
+			});
+		},
+		getColumnList(id) {
+			this.$api.getColumnList(
 				{
-					img: 'http://t14.baidu.com/it/u=561204940,3527801245&fm=224&app=112&f=JPEG?w=500&h=500',
-					titie: '闽南30年经典老歌'
+					model_id: id,
+					main_body_id: this.main_body_id
 				},
-				{
-					img: 'https://img1.baidu.com/it/u=1473724061,3866170653&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500',
-					titie: '闽南情'
+				function (res) {
+					// console.log(res, 'res');
 				}
-			],
-			mnXiQu: [
+			);
+		},
+		// 栏目内容列表查看更多
+		getContentList(id) {
+			this.$api.getContentList(
 				{
-					img: 'https://img.pconline.com.cn/images/upload/upc/tx/photoblog/1411/12/c1/40851785_40851785_1415781337347.jpg',
-					titie: '闽剧王莲莲拜香'
+					model_id: id,
+					main_body_id: this.main_body_id,
+					flag: 'recommend',
+					page: '1',
+					pageSize: '10'
 				},
+				function (res) {
+					// console.log(res, '内容列表');
+					// that.projectList = res.data;
+				}
+			);
+		},
+		// 主体栏目内容列表
+		getMainBodyColumnContentList(id) {
+			this.$api.getMainBodyColumnContentList(
 				{
-					img: 'https://img1.baidu.com/it/u=1657718455,2908945415&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500',
-					titie: '赏闽剧《北进图'
+					model_id: id,
+					main_body_id: 5
 				},
-				{
-					img: 'https://img.pconline.com.cn/images/upload/upc/tx/photoblog/1301/11/c2/17299755_17299755_1357871971161.jpg',
-					titie: '高甲戏(闽南传统民间戏剧)'
+				function (res) {
+					that.mnGeQu = res.data;
+					// console.log(that.mnGeQu, '内容列表默认');
 				}
-			]
-		};
-	},
-	methods: {
-		yinPinLieBiao() {
+			);
+		},
+		// 视频
+		videoBtn(i, is) {
+			// console.log(i, '55555555555');
+			// console.log(is, '6666666666');
+			// console.log(this.mnGeQu[i].content_list[is].id, '75555558');
 			uni.navigateTo({
-				url: '/index_fenbao/minNanyu/yinPinLieBiao'
+				url: '/index_fenbao/minNanyu/videoPage?id=' + this.mnGeQu[i].content_list[is].id
 			});
 		}
 	}
@@ -206,6 +181,7 @@ export default {
 	width: 261rpx;
 	height: 349rpx;
 	background: #ca5642;
+	margin-bottom: 10rpx;
 	border-radius: 10rpx 10rpx 10rpx 0rpx;
 }
 

+ 382 - 0
index_fenbao/minNanyu/videoPage.vue

@@ -0,0 +1,382 @@
+<template>
+	<view class="body" style="background-color: #efefef">
+		<u-navbar :autoBack="true" :title="list.title" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view class="box_1">
+			<!-- 视频 -->
+			<view class="box_17">
+				<view class="group_13">
+					<video class="myVideo" enable-play-gesture="true" id="myVideo" :src="list.video" controls></video>
+				</view>
+			</view>
+			<view class="box_16">
+				<text lines="1" class="text_2">闽南戏曲艺术中心首演季·青年剧展:《倪氏教子》,梨园戏!</text>
+				<view class="block_6">
+					<view class="image-text_36">
+						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
+						<text lines="1" class="text-group_1">1.5w</text>
+					</view>
+
+					<view class="image-text_37">
+						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
+						<text lines="1" class="text-group_2">1.5w</text>
+					</view>
+					<view class="image-text_38">
+						<uni-icons type="redo" color="#312520" size="20"></uni-icons>
+						<text lines="1" class="text-group_3">分享</text>
+					</view>
+				</view>
+				<view class="text-wrapper_1">
+					<u-read-more showHeight="200rpx" toggle closeText="展开" color="#312520" :shadowStyle="{ backgroundImage: 'none' }">
+						<rich-text :nodes="content"></rich-text>
+					</u-read-more>
+				</view>
+				<view class="box_11">
+					<view class="group_11">
+						<view class="text-wrapper_2">
+							<text lines="1" class="text_4">选集</text>
+							<text lines="1" class="text_5">(全6集)</text>
+						</view>
+					</view>
+					<view class="banxin">
+						<view class="content">
+							<!-- 下列代码未加规范,仅供参考,请勿模仿 -->
+							<scroll-view scroll-x style="display: flex; white-space: nowrap">
+								<view class="xj_container" v-for="item in 6" :key="item">
+									<view class="xj_box">
+										<text>第{{ item }}集</text>
+									</view>
+								</view>
+							</scroll-view>
+						</view>
+					</view>
+				</view>
+				<text lines="1" class="text_9">相关推荐</text>
+				<view class="banxin">
+					<view class="content">
+						<!-- 下列代码未加规范,仅供参考,请勿模仿 -->
+						<scroll-view scroll-x style="display: flex; white-space: nowrap">
+							<view class="mn_container" v-for="item in 6" :key="item">
+								<view class="mn_box">
+									<image src="/static/image/fx.png" style="border-radius: 10rpx 10rpx 10rpx 0rpx; width: 100%; height: 100%"></image>
+								</view>
+								<view class="item_js">全{{ item }}集</view>
+								<text class="mn_text">浪子回头金不换</text>
+							</view>
+						</scroll-view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that;
+export default {
+	data() {
+		return {
+			main_body_id: '',
+			content:
+				' 演绎明代南安缙绅傅正,屡科不第,见儿子傅昆偏爱绘画,不喜读书八股,又遭妻子倪氏奚落演绎明代南安缙绅傅正,屡科不第,见儿子傅昆偏爱绘画,不喜读书八股,又遭妻子倪氏奚落,愤而前往雪峰寺出家。倪氏本性骄强,因丈夫屡试不中,饱受世情讥讽。又因“定要教子成器,金榜题名,才肯相见”的誓言,于是百般严厉教子,无所不用其极。',
+			title: 'video',
+			src: '',
+			inputValue: '',
+			isFullScreen: false,
+			list: []
+		};
+	},
+	onLoad(o) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getContentDetails(o.id);
+	},
+	methods: {
+		// 详情
+		getContentDetails(id) {
+			this.$api.getContentDetails(
+				{
+					main_body_id: this.main_body_id,
+					id: id
+				},
+				function (res) {
+					that.list = res.data;
+					console.log(that.list, '99999999');
+				}
+			);
+		}
+	}
+};
+</script>
+
+<style>
+.banxin {
+	margin: 0 32rpx 0 32rpx;
+}
+.group_13 {
+	width: 100%;
+	height: 420rpx;
+}
+.myVideo {
+	width: 100%;
+	height: 100%;
+}
+.xj_container {
+	display: inline-block;
+	margin-right: 20rpx;
+	text-align: center;
+}
+
+.xj_box {
+	width: 200rpx;
+	height: 60rpx;
+	background: rgba(202, 86, 66, 0.08);
+	border: 1px solid #ca5642;
+	border-radius: 10rpx;
+	line-height: 55rpx;
+}
+
+/deep/.u-read-more__toggle__text.data-v-47ca9a7f {
+	width: 120rpx !important;
+	height: 40rpx !important;
+	background: #ffe4b0 !important;
+	border-radius: 10rpx !important;
+	margin-left: 550rpx !important;
+	padding: 10rpx !important;
+	margin-top: 20rpx !important;
+}
+.box_1 {
+	width: 750rpx;
+	display: flex;
+	padding-bottom: 50rpx;
+	flex-direction: column;
+}
+.mn_container {
+	position: relative;
+	display: inline-block;
+	margin-right: 20rpx;
+	text-align: center;
+}
+
+.mn_box {
+	width: 261rpx;
+	height: 349rpx;
+	background: #ca5642;
+	border-radius: 10rpx 10rpx 10rpx 0rpx;
+}
+.item_js {
+	position: absolute;
+	bottom: 60rpx;
+	left: 125rpx;
+	width: 112rpx;
+	height: 50rpx;
+	font-size: 24rpx;
+	color: #ffffff;
+	line-height: 50rpx;
+	background-color: rgba(0, 0, 0, 0.2);
+	border-radius: 10rpx;
+}
+.mn_text {
+	font-size: 28rpx;
+	color: #333;
+}
+.box_16 {
+	width: 750rpx;
+	display: flex;
+	flex-direction: column;
+	margin: 10rpx 0 1rpx 0;
+}
+.text_2 {
+	width: 664rpx;
+	height: 91rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 36rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	line-height: 56rpx;
+	margin: 52rpx 0 0 35rpx;
+}
+.block_6 {
+	width: 329rpx;
+	height: 32rpx;
+	flex-direction: row;
+	display: flex;
+	margin: 41rpx 0 0 32rpx;
+}
+.image-text_36 {
+	width: 90rpx;
+	height: 32rpx;
+	flex-direction: row;
+	display: flex;
+	justify-content: space-between;
+}
+
+.text-group_1 {
+	width: 50rpx;
+	height: 19rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 24rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 24rpx;
+	margin-top: 6rpx;
+}
+.image-text_37 {
+	width: 90rpx;
+	height: 32rpx;
+	margin-left: 30rpx;
+	flex-direction: row;
+	display: flex;
+	justify-content: space-between;
+}
+
+.text-group_2 {
+	width: 50rpx;
+	height: 19rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 24rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 24rpx;
+	margin-top: 6rpx;
+}
+.image-text_38 {
+	width: 87rpx;
+	height: 32rpx;
+	margin-left: 32rpx;
+	flex-direction: row;
+	display: flex;
+	justify-content: space-between;
+}
+
+.text-group_3 {
+	width: 46rpx;
+	height: 23rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 24rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 24rpx;
+	margin-top: 4rpx;
+}
+.text-wrapper_1 {
+	background-color: rgba(255, 255, 255, 1);
+	width: 749rpx;
+	margin-top: 33rpx;
+	display: flex;
+	flex-direction: column;
+}
+
+.box_11 {
+	background-color: rgba(255, 255, 255, 1);
+	height: 172rpx;
+	margin-top: 32rpx;
+	width: 749rpx;
+	display: flex;
+	flex-direction: column;
+	justify-content: flex-center;
+}
+.group_11 {
+	width: 164rpx;
+	height: 28rpx;
+	display: flex;
+	flex-direction: row;
+	margin: 27rpx 0 20rpx 49rpx;
+}
+.text-wrapper_2 {
+	width: 164rpx;
+	height: 28rpx;
+	overflow-wrap: break-word;
+	font-size: 0rpx;
+	font-family: SourceHanSansCN-Bold;
+	font-weight: 700;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 28rpx;
+}
+.text_4 {
+	width: 164rpx;
+	height: 28rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 28rpx;
+	font-family: SourceHanSansCN-Bold;
+	font-weight: 700;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 28rpx;
+}
+.text_5 {
+	width: 164rpx;
+	height: 28rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 28rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 28rpx;
+}
+.group_12 {
+	width: 718rpx;
+	height: 60rpx;
+	flex-direction: row;
+	display: flex;
+	justify-content: space-between;
+	margin: 30rpx 0 27rpx 32rpx;
+}
+.text-wrapper_3 {
+	background-color: rgba(202, 86, 66, 0.08);
+	border-radius: 10rpx;
+	height: 60rpx;
+	border: 1px solid rgba(202, 86, 66, 1);
+	display: flex;
+	flex-direction: column;
+	width: 200rpx;
+}
+.text_6 {
+	width: 60rpx;
+	height: 23rpx;
+	overflow-wrap: break-word;
+	color: rgba(202, 86, 66, 1);
+	font-size: 24rpx;
+	font-family: SourceHanSansCN-Regular;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 56rpx;
+	margin: 19rpx 0 0 70rpx;
+}
+
+.text_9 {
+	width: 111rpx;
+	height: 28rpx;
+	overflow-wrap: break-word;
+	color: rgba(49, 37, 32, 1);
+	font-size: 28rpx;
+	font-family: SourceHanSansCN-Bold;
+	font-weight: 700;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 28rpx;
+	margin: 46rpx 0 30rpx 48rpx;
+}
+
+.box_17 {
+	height: 422rpx;
+	display: flex;
+	flex-direction: column;
+	width: 750rpx;
+}
+</style>

+ 36 - 0
index_fenbao/minsu/geng_duo.vue

@@ -0,0 +1,36 @@
+<template>
+	<view>
+		<u-navbar :autoBack="true" title="民俗宗教" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {};
+	},
+	onLoad(o) {
+		console.log(o);
+		this.getContentList(o);
+	},
+	methods: {
+		// 栏目内容列表查看更多
+		getContentList(o) {
+			this.$api.getContentList(
+				{
+					model_id: o.id,
+					main_body_id: o.main_body_id,
+					main_body_column_id: o.main_body_column_id,
+					page: '1',
+					pageSize: '10'
+				},
+				function (res) {
+					console.log(res, '内容列表全部');
+				}
+			);
+		}
+	}
+};
+</script>
+
+<style></style>

+ 94 - 119
index_fenbao/minsu/minsu.vue

@@ -4,113 +4,45 @@
 		<view>
 			<u-swiper :list="list1" height="335rpx" :indicator="true" :autoplay="true" :circular="true" keyName="image" showTitle></u-swiper>
 		</view>
-		<view class="text-wrapper_7">
-			<text lines="1" class="text_4">生活习俗</text>
-			<text lines="1" class="text_5">查看更多》</text>
-		</view>
-		<!-- 生活习俗 -->
-		<view class="sh_xs banxin">
-			<view class="sh_xs_item" v-for="item in shXiShuList" :key="item">
-				<view @click="detailsBtn" class="" style="width: 325rpx; height: 180rpx; border-radius: 10rpx">
-					<image style="width: 100%; height: 100%" :src="item.img"></image>
-				</view>
-				<view class="">{{ item.title }}</view>
-				<view class="ms_dianzan">
-					<view class="">
-						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
-
-					<view class="">
-						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 生活习俗end -->
-		<!-- 行业习俗 -->
-		<!-- 		<view class="text-wrapper_7">
-			<text lines="1" class="text_4">行业习俗</text>
-			<text lines="1" class="text_5">查看更多》</text>
-		</view>
-		<view class="sh_xs banxin">
-			<view class="sh_xs_item" v-for="item in 4" :key="item">
-				<view class="" style="width: 325rpx; height: 180rpx; border-radius: 10rpx">
-					<image style="width: 100%; height: 100%" src="https://img0.baidu.com/it/u=2448527499,3053317408&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=394"></image>
-				</view>
-				<view class="">閩南自古有廟就有</view>
-				<view class="ms_dianzan">
-					<view class="">
-						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
 
-					<view class="">
-						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<!-- 行业习俗end -->
-		<!-- 岁时习俗 -->
-		<!-- 	<view class="text-wrapper_7">
-			<text lines="1" class="text_4">岁时习俗</text>
-			<text lines="1" class="text_5">查看更多》</text>
-		</view>
+		<!-- 生活习俗 -->
 		<view class="sh_xs banxin">
-			<view class="sh_xs_item" v-for="item in 4" :key="item">
-				<view class="" style="width: 325rpx; height: 180rpx; border-radius: 10rpx">
-					<image style="width: 100%; height: 100%" src="https://img1.baidu.com/it/u=2977394516,3415116795&fm=253&fmt=auto&app=138&f=JPEG?w=641&h=361"></image>
+			<view class="text-wrapper_7" v-for="(item, index) in customList" :key="item.id">
+				<view @click="getContentList(index)" class="gebg_Duo" style="">
+					<text lines="1" class="text_4">{{ item.name }}</text>
+					<text lines="1" class="text_5">查看更多》</text>
 				</view>
-				<view class="">閩南自古有廟就有</view>
-				<view class="ms_dianzan">
-					<view class="">
-						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
+				<view class="sh_xs_box">
+					<view class="sh_xs_item" v-for="(item2, index1) in customList[index].content_list" :key="item.id">
+						<view @click="detailsBtn(index, index1)" class="img_box">
+							<image class="img" :src="item2.thumbnail"></image>
+						</view>
+						<view class="">{{ item2.title }}</view>
+						<view class="ms_dianzan">
+							<view class="">
+								<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
+								<text>{{ item2.collects }}</text>
+							</view>
 
-					<view class="">
-						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
+							<view class="" style="display: flex; align-items: center; justify-content: space-evenly">
+								<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
+								<text>{{ item2.likes }}</text>
+							</view>
+						</view>
 					</view>
 				</view>
 			</view>
-		</view> -->
-		<!-- 岁时习俗end -->
-		<!-- 礼仪习俗 -->
-		<!-- <view class="text-wrapper_7">
-			<text lines="1" class="text_4">礼仪习俗</text>
-			<text lines="1" class="text_5">查看更多》</text>
 		</view>
-		<view class="sh_xs banxin">
-			<view class="sh_xs_item" v-for="item in 4" :key="item">
-				<view class="" style="width: 325rpx; height: 180rpx; border-radius: 10rpx">
-					<image style="width: 100%; height: 100%" src="https://img0.baidu.com/it/u=2448527499,3053317408&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=394"></image>
-				</view>
-				<view class="">閩南自古有廟就有</view>
-				<view class="ms_dianzan">
-					<view class="">
-						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
-
-					<view class="">
-						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<!-- 礼仪习俗end -->
 	</view>
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
+			id: '',
+			main_body_id: '',
 			list1: [
 				{
 					image: 'https://img0.baidu.com/it/u=1541281845,960690765&fm=253&fmt=auto&app=138&f=JPEG?w=758&h=500',
@@ -126,31 +58,58 @@ export default {
 				}
 			],
 			// 生活习俗
-			shXiShuList: [
-				{
-					img: 'https://www.chinanews.com/tp/hd2011/2013/03-11/U508P4T426D182733F16470DT20130311112416.jpg',
-					title: '闽南民俗浔浦天香日'
-				},
-				{
-					img: 'https://inews.gtimg.com/newsapp_bt/0/11032609926/1000',
-					title: '闽南冬至丸'
-				},
-				{
-					img: 'https://img1.baidu.com/it/u=1711973128,1321603179&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=333',
-					title: '闽南习俗拜天公'
-				},
-				{
-					img: 'https://i2.hdslb.com/bfs/archive/24ab948019ae5cc13055113cfcd5321f7c16dc41.jpg',
-					title: '抬神'
-				}
-			]
+			customList: []
 		};
 	},
+	onShow() {
+		this.getMainBodyColumnContentList(this.id);
+	},
+	onLoad(o) {
+		that = this;
+		this.id = o.id;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getColumnList(o.id);
+		this.getMainBodyColumnContentList(o.id);
+	},
 	methods: {
-		detailsBtn() {
+		detailsBtn(i, is) {
+			// console.log(i, '55555555555');
+			// console.log(is, '6666666666');
+			// console.log(this.customList[i].content_list[is].id, '75555558');
+			uni.navigateTo({
+				url: '/index_fenbao/minsu/ms_wenZhang?id=' + this.customList[i].content_list[is].id
+			});
+		},
+		// 模型的主体栏目列表
+		getColumnList(id) {
+			this.$api.getColumnList(
+				{
+					model_id: id,
+					main_body_id: this.main_body_id
+				},
+				function (res) {
+					// console.log(res, 'res');
+				}
+			);
+		},
+		// 查看更多
+		getContentList(i) {
 			uni.navigateTo({
-				url: '/index_fenbao/minsu/ms_wenZhang'
+				url: `/index_fenbao/minsu/geng_duo?id=${this.id}&main_body_id=${this.main_body_id}&main_body_column_id=${this.customList[i].id}`
 			});
+		},
+		// 主体栏目默认内容列表
+		getMainBodyColumnContentList(id) {
+			this.$api.getMainBodyColumnContentList(
+				{
+					model_id: id,
+					main_body_id: this.main_body_id
+				},
+				function (res) {
+					// console.log(res, '内容列表默认');
+					that.customList = res.data;
+				}
+			);
 		}
 	}
 };
@@ -177,20 +136,17 @@ export default {
 	display: flex;
 	justify-content: space-between;
 	margin-top: 10rpx;
+	margin-bottom: 10rpx;
 }
 .sh_xs_item {
 	border-radius: 10rpx;
 	background: #ffffff;
-	margin-bottom: 35rpx;
+	margin-left: 30rpx;
 }
 .text-wrapper_7 {
 	width: 651rpx;
-	height: 45rpx;
-	flex-direction: row;
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	margin: 33rpx 0 25rpx 48rpx;
+
+	margin: 33rpx 15rpx 25rpx 5rpx;
 }
 .text_4 {
 	width: 112rpx;
@@ -210,4 +166,23 @@ export default {
 	line-height: 20rpx;
 	margin-top: 3rpx;
 }
+.sh_xs_box {
+	display: flex;
+	justify-content: space-around;
+}
+.img {
+	width: 100%;
+	height: 100%;
+	border-radius: 10rpx;
+}
+.img_box {
+	width: 330rpx;
+	height: 185rpx;
+	margin-bottom: 10rpx;
+}
+.gebg_Duo {
+	height: 60rpx;
+	display: flex;
+	justify-content: space-between;
+}
 </style>

+ 151 - 20
index_fenbao/minsu/ms_wenZhang.vue

@@ -2,19 +2,20 @@
 	<view>
 		<u-navbar :autoBack="true" title="民俗宗教" bgColor="rgba(255,255,255,0)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
 		<view class="text-group_17">
-			<text lines="1" class="text_2">闽南人,拜拜成风,佛教、道教自然不缺,民间信仰才是主流。</text>
-			<text lines="1" decode="true" class="text_13">2023.09.01&nbsp;12:00:10</text>
+			<text lines="1" class="text_2">{{ list.title }}</text>
+			<text lines="1" decode="true" class="text_13">{{ formattedCurrentTime }}</text>
 		</view>
 		<view class="block_3">
 			<view class="text_3">
 				<text class="text_10">
-					说到民间信仰,闽南可谓丰富多彩,以种类和数量论,闽南都可以称得上是全国各民系中的佼佼者,闽南人常将信仰活动称为“拜拜”,也就是祭拜、祭祀之意,而其拜拜的对象来源广泛,从中国历史上的真实人物、传说神灵到地方名士、乡野术士和生灵,无所不包。
+					<!-- <u-parse :content="list.content"></u-parse> -->
+					{{ (list.content || '').replace(/<\/?[^>]*>/g, '') | removeHTMLTag }}
 				</text>
 			</view>
 			<view class="box_3">
-				<image style="width: 100%; height: 100%" src="https://img0.baidu.com/it/u=1541281845,960690765&fm=253&fmt=auto&app=138&f=JPEG?w=758&h=500"></image>
+				<image style="width: 100%; height: 100%" :src="list.image"></image>
 			</view>
-			<view class="text-wrapper_1">
+			<!-- 			<view class="text-wrapper_1">
 				<text class="paragraph_1">一、水神、海神</text>
 
 				<p class="paragraph_2">闽南近海,大多以海为田,以海为生,在与海交往的几千年里,闽南人最乐于将海神作为自己营生的保护神。</p>
@@ -23,18 +24,18 @@
 					闽南的水神、海神大概有四种:一为全国各地普遍存在的海龙王;二为闽南土生土长的海神妈祖;三为主管水的玄天上帝;四为较罕见的水仙尊王。水仙尊王并非独一角色。
 					有不同,常见者如西楚霸王项羽(乌江自刎)、屈原(汨罗江投江)、伍子胥(沉尸河底)、李白(醉酒溺亡)、王勃(渡江溺亡)、大禹(治水)等。
 				</p>
-			</view>
+			</view> -->
 
 			<view class="box_35">
 				<view class="ms_dianzan">
-					<view class="box_r">
-						<uni-icons type="star-filled" color="#4e7198" size="20"></uni-icons>
-						<text>1.5w</text>
+					<view class="box_r" @click="collect">
+						<uni-icons type="star-filled" color="#4e7198" size="22"></uni-icons>
+						<text>{{ list.collects }}</text>
 					</view>
 
-					<view class="box_r">
+					<view class="box_r" @click="likeBtn">
 						<uni-icons type="heart-filled" color="#ca5642" size="20"></uni-icons>
-						<text>1.5w</text>
+						<text>{{ list.likes }}</text>
 					</view>
 					<view class="box_r">
 						<uni-icons type="redo" size="20"></uni-icons>
@@ -68,9 +69,13 @@
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
+			formattedCurrentTime: '',
+			main_body_id: '',
+			list: {},
 			shXiShuList: [
 				{
 					img: 'https://www.chinanews.com/tp/hd2011/2013/03-11/U508P4T426D182733F16470DT20130311112416.jpg',
@@ -91,7 +96,132 @@ export default {
 			]
 		};
 	},
-	methods: {}
+	filters: {
+		removeHTMLTag(str) {
+			str = str.replace(/<\/?[^>]*>/g, ''); // 去除HTML tag
+			str = str.replace(/[ | ]*\n/g, '\n'); // 去除行尾空白
+			str = str.replace(/\n[\s| | ]*\r/g, '\n'); //去除多余空行
+			// str = str.replace(/ /gi, ''); // 去掉
+			const arrEntities = {
+				lt: '<',
+				gt: '>',
+				nbsp: ' ',
+				amp: '&',
+				quot: '"'
+			}; // 转义符换成普通字符
+			str = str.replace(/&(lt|gt|nbsp|amp|quot);/gi, function (all, t) {
+				return arrEntities[t];
+			});
+			return str;
+		}
+	},
+	onLoad(o) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getContentDetails(o.id);
+	},
+	mounted() {
+		this.updateCurrentTime();
+	},
+	methods: {
+		// 详情
+		getContentDetails(id) {
+			this.$api.getContentDetails(
+				{
+					main_body_id: this.main_body_id,
+					id: id
+				},
+				function (res) {
+					that.list = res.data;
+					console.log(that.list, '99999999');
+				}
+			);
+		},
+		// 收藏
+		collect() {
+			if (this.list.is_collect == 0) {
+				this.$api.collect(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_collect = 1;
+							that.list.collects++;
+						});
+						that.$common.successToShow('成功收藏');
+					}
+				);
+			} else {
+				this.$api.uncollect(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_collect = 0;
+							that.list.collects--;
+						});
+
+						that.$common.successToShow('取消收藏');
+					}
+				);
+			}
+		},
+		// 点赞
+		likeBtn() {
+			if (this.list.is_like == 0) {
+				this.$api.like(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_like = 1;
+							that.list.likes++;
+						});
+						that.$common.successToShow('成功点赞');
+					}
+				);
+			} else {
+				this.$api.unLike(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list.id
+					},
+					function (res) {
+						that.$nextTick(() => {
+							that.list.is_like = 0;
+							that.list.likes--;
+						});
+
+						that.$common.successToShow('取消点赞');
+					}
+				);
+			}
+		},
+		leftClick() {
+			uni.navigateBack({
+				delta: 1
+			});
+		},
+		updateCurrentTime() {
+			const now = new Date();
+			const year = now.getFullYear();
+			const month = ('0' + (now.getMonth() + 1)).slice(-2);
+			const date = ('0' + now.getDate()).slice(-2);
+			const hours = ('0' + now.getHours()).slice(-2);
+			const minutes = ('0' + now.getMinutes()).slice(-2);
+
+			this.formattedCurrentTime = `${year}.${month}.${date} ${hours}:${minutes}`;
+
+			// 如果需要实时更新时间,可以使用setInterval
+			setInterval(this.updateCurrentTime, 1000);
+		}
+	}
 };
 </script>
 
@@ -102,6 +232,8 @@ export default {
 	margin-top: 10rpx;
 }
 .box_r {
+	display: flex;
+	align-items: center;
 	margin-right: 15rpx;
 }
 .sh_xs {
@@ -117,7 +249,7 @@ export default {
 }
 .text-group_17 {
 	width: 668rpx;
-	height: 163rpx;
+	/* height: 163rpx; */
 	display: flex;
 	flex-direction: column;
 	justify-content: space-between;
@@ -125,7 +257,7 @@ export default {
 }
 .text_2 {
 	width: 668rpx;
-	height: 121rpx;
+	/* height: 121rpx; */
 	overflow-wrap: break-word;
 	color: rgba(49, 37, 32, 1);
 	font-size: 48rpx;
@@ -142,21 +274,20 @@ export default {
 	font-size: 24rpx;
 	font-family: SourceHanSansCN-Regular;
 	font-weight: normal;
-
 	white-space: nowrap;
 	line-height: 72rpx;
-	margin-top: 80rpx;
+	/* margin-top: 80rpx; */
 }
 .block_3 {
 	background-color: rgba(255, 255, 255, 1);
 	width: 749rpx;
-	margin-top: 100rpx;
+	margin-top: 60rpx;
 	display: flex;
 	flex-direction: column;
 }
 .text_3 {
 	width: 685rpx;
-	height: 270rpx;
+	height: 400rpx;
 	text-indent: 2rem;
 	font-size: 0rpx;
 	overflow: scroll;
@@ -165,7 +296,7 @@ export default {
 }
 .text_10 {
 	width: 685rpx;
-	height: 270rpx;
+	height: 300rpx;
 	/* overflow-wrap: break-word; */
 	color: rgba(49, 37, 32, 1);
 	font-size: 30rpx;
@@ -259,6 +390,6 @@ export default {
 	height: 32rpx;
 	flex-direction: row;
 	display: flex;
-	margin: 150rpx 0 32rpx 380rpx;
+	margin: 50rpx 0 32rpx 380rpx;
 }
 </style>

+ 58 - 26
index_fenbao/mn_jingshen/mn_jingshen.vue

@@ -2,11 +2,23 @@
 	<view class="box">
 		<u-navbar :autoBack="true" title="闽南精神" bgColor="rgba(255,255,255,255)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
 		<view class="header">
-			<image style="width: 100%; height: 100%" src="http://mms2.baidu.com/it/u=4012979722,1550976495&fm=253&app=120&f=JPEG?w=1080&h=324"></image>
+			<u-swiper
+				:list="mn_spiritList"
+				imgMode="aspectFill"
+				:height="120"
+				:indicator="true"
+				:autoplay="true"
+				radius="0"
+				:circular="true"
+				indicatorStyle="bottom: 10px"
+				indicatorMode="dot"
+				indicatorActiveColor="#fff"
+				indicatorInactiveColor="rgba(255, 255, 255, 0.35)"
+			></u-swiper>
 		</view>
-		<view class="banner" v-for="item in list" :key="item.name">
+		<view class="banner" @click="spiritBtn(index)" v-for="(item, index) in list" :key="item.id">
 			<view class="box_img">
-				<image style="width: 100%; height: 100%; border-radius: 50%" :src="item.img" mode=""></image>
+				<image style="width: 100%; height: 100%; border-radius: 50%" :src="item.image" mode=""></image>
 			</view>
 			<view class="" style="line-height: 65rpx">
 				<view class="">{{ item.name }}</view>
@@ -20,38 +32,58 @@
 </template>
 
 <script>
+let that;
 export default {
 	data() {
 		return {
-			list: [
-				{
-					img: 'https://img2.baidu.com/it/u=2106717653,1595552958&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=337',
-					name: '郑成功',
-					title: '汉族,明末清初军事家,民族英雄'
-				},
-				{
-					img: 'https://img2.baidu.com/it/u=2734408568,2157410577&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=318',
-					name: '人文精神',
-					title: '追寻先人精神,品读闽南文化 '
-				},
+			id: '' /* 模型id */,
+			main_body_id: '',
+			mn_spiritList: [
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt2.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt1.png',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt3.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt4.jpg',
+				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt5.png'
+			],
+			// 闽南精神列表
+			list: [],
+			// 闽南精神列表内容
+			ListDetail: []
+		};
+	},
+	onLoad(o) {
+		that = this;
+		this.id = o.id;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getColumnList(o.id);
+	},
+	methods: {
+		getColumnList(id) {
+			this.$api.getColumnList(
 				{
-					img: 'https://img2.baidu.com/it/u=2106717653,1595552958&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=337',
-					name: '闽南华侨华人人文精神探析',
-					title: '拼搏进取,敢打敢拼的奋进精神'
+					model_id: 3,
+					main_body_id: this.main_body_id
 				},
-				{
-					img: 'https://img1.baidu.com/it/u=2520995424,4290269983&fm=253&app=120&size=w931&n=0&f=JPEG&fmt=auto?sec=1698858000&t=09b27eddc6fdec5ea15fb8c979a60ba6',
-					name: '李光地',
-					title: '名相故里安溪湖头'
+				function (res) {
+					console.log(res, 'res');
+					that.list = res.data;
 				}
-			]
-		};
-	},
-	methods: {}
+			);
+		},
+		// 精神菜单
+		spiritBtn(i) {
+			uni.navigateTo({
+				url: `/index_fenbao/mn_jingshen/xiang_qing?id=${this.id}&main_body_column_id=${this.list[i].id}&title=${this.list[i].name}`
+			});
+		}
+	}
 };
 </script>
 
 <style>
+/deep/.u-swiper-indicator__wrapper__dot--active {
+	width: 5px !important;
+}
 .box {
 	height: auto;
 	width: 100%;
@@ -83,4 +115,4 @@ export default {
 	height: 160rpx;
 	border-radius: 50%;
 }
-</style>
+</style>

+ 114 - 0
index_fenbao/mn_jingshen/xiang_qing.vue

@@ -0,0 +1,114 @@
+<template>
+	<view>
+		<u-navbar :autoBack="true" :title="title" bgColor="rgba(255,255,255,255)" :placeholder="true" titleStyle="font-weight:bold;color:#121212"></u-navbar>
+		<view class="ad">
+			<view class="box_22" v-for="(item, index) in projectList" :key="item.id">
+				<view class="block_5">
+					<image style="width: 100%; height: 100%; border-radius: 0 50rpx 0 20rpx" :src="item.thumbnail"></image>
+
+					<view class="tag_1">
+						<text lines="1" class="text_9">{{ item.type_text }}</text>
+					</view>
+
+					<view class="tag_2">
+						<text lines="1" class="text_10">{{ item.title }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+let that;
+export default {
+	data() {
+		return { main_body_id: '', title: '', projectList: [] };
+	},
+	onLoad(o) {
+		that = this;
+		this.title = o.title;
+		this.main_body_id = this.$db.get('main_body_id');
+		console.log(o);
+		this.getContentList(o);
+	},
+	methods: {
+		// 主体栏目内容列表查看更多
+		getContentList(o) {
+			this.$api.getContentList(
+				{
+					model_id: o.id /* 模型id */,
+					main_body_id: this.main_body_id,
+					main_body_column_id: o.main_body_column_id /* 栏目id */,
+					page: '1',
+					pageSize: '10'
+				},
+				function (res) {
+					console.log(res, '内容列表更多');
+					that.projectList = res.data;
+				}
+			);
+		}
+	}
+};
+</script>
+
+<style>
+.ad {
+	margin: 20rpx 32rpx 0 32rpx;
+}
+.box_22 {
+	height: 345rpx;
+	display: flex;
+	flex-direction: column;
+	width: 686rpx;
+	margin-bottom: 50rpx;
+}
+.block_5 {
+	position: relative;
+	height: 345rpx;
+	width: 686rpx;
+	display: flex;
+	flex-direction: column;
+}
+
+.tag_1 {
+	position: absolute;
+	background-color: rgba(77, 113, 153, 1);
+	border-radius: 9rpx 9rpx 32rpx 0rpx;
+	height: 48rpx;
+	display: flex;
+	flex-direction: column;
+	width: 86rpx;
+}
+.tag_2 {
+	position: absolute;
+	bottom: 36rpx;
+	right: 20rpx;
+}
+.text_10 {
+	width: 147rpx;
+	height: 29rpx;
+	overflow-wrap: break-word;
+	color: #ffffff;
+	font-size: 34rpx;
+	font-family: Adobe Heiti Std R;
+	font-weight: normal;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 30rpx;
+}
+.text_9 {
+	width: 47rpx;
+	height: 23rpx;
+	overflow-wrap: break-word;
+	color: rgba(255, 255, 255, 1);
+	font-size: 24rpx;
+	font-family: SourceHanSansCN-Bold;
+	font-weight: 700;
+	text-align: left;
+	white-space: nowrap;
+	line-height: 24rpx;
+	margin: 12rpx 0 0 19rpx;
+}
+</style>

+ 3 - 0
manifest.json

@@ -129,6 +129,9 @@
                 "desc" : "你的位置信息将用于小程序位置接口的效果展示"
             }
         },
+        "optimization" : {
+            "subPackages" : true
+        },
         "requiredPrivateInfos" : [ "getLocation" ]
     },
     "mp-alipay" : {

+ 64 - 3
pages.json

@@ -21,6 +21,7 @@
 			"style": {
 				"navigationBarTitleText": "",
 				"enablePullDownRefresh": false,
+				"onReachBottomDistance": 150,
 				"navigationStyle": "custom"
 			}
 		},
@@ -142,6 +143,14 @@
 				"path": "feiyi",
 				"style": {
 					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false,
+					"onReachBottomDistance": 100
+				}
+
+			}, {
+				"path": "feiyiXQ",
+				"style": {
+					"navigationBarTitleText": "",
 					"enablePullDownRefresh": false
 				}
 
@@ -153,6 +162,28 @@
 				"path": "jianzhu",
 				"style": {
 					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false,
+					"onReachBottomDistance": 100
+				}
+
+			}, {
+				"path": "jianZhuXQ",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
+			}, {
+				"path": "jianZhu_index",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
+			}, {
+				"path": "map_page",
+				"style": {
+					"navigationBarTitleText": "",
 					"enablePullDownRefresh": false
 				}
 
@@ -173,6 +204,13 @@
 					"navigationBarTitleText": "",
 					"enablePullDownRefresh": false
 				}
+			}, {
+				"path": "videoPage",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
 			}]
 		},
 		{
@@ -190,6 +228,13 @@
 					"navigationBarTitleText": "",
 					"enablePullDownRefresh": false
 				}
+			}, {
+				"path": "geng_duo",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
 			}]
 		},
 		{
@@ -201,6 +246,13 @@
 					"enablePullDownRefresh": false
 				}
 
+			}, {
+				"path": "xiang_qing",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
 			}]
 		},
 		{
@@ -308,9 +360,9 @@
 			}]
 		},
 
-		// 2222222
+
 		{
-			"root": "chuanCheng_fenbao/search",
+			"root": "chuanCheng_fenbao",
 			"pages": [{
 				"path": "search",
 				"style": {
@@ -318,7 +370,16 @@
 					"enablePullDownRefresh": false
 				}
 
-			}]
+			}    ,{
+                    "path" : "touGao",
+                    "style" :                                                                                    
+                {
+                    "navigationBarTitleText": "",
+                    "enablePullDownRefresh": false
+                }
+                
+                }
+            ]
 		}, {
 			"root": "user_fenbao",
 			"pages": [{

+ 28 - 0
pages/chuanCheng/chuanCheng.vue

@@ -4,6 +4,10 @@
 			<view class="box_top">
 				<image style="width: 100%; height: 100%" src="https://huli-app.wenlvti.net/app_static/minnanhun/image/ccbg.png"></image>
 			</view>
+			<view class="gy_box" @click="tougaoBtn">
+				<view class="">投稿</view>
+				<uni-icons type="compose" size="22" color="#ffffff"></uni-icons>
+			</view>
 			<view class="box_search" @click="searchBtn">
 				<view class="">
 					<uni-icons type="search" size="20"></uni-icons>
@@ -130,6 +134,11 @@ export default {
 			uni.navigateTo({
 				url: '/chuanCheng_fenbao/search/search'
 			});
+		},
+		tougaoBtn() {
+			uni.navigateTo({
+				url: '/chuanCheng_fenbao/touGao'
+			});
 		}
 	}
 };
@@ -196,4 +205,23 @@ export default {
 	bottom: 0;
 	left: 0;
 }
+.gy_box {
+	width: 160rpx;
+	height: 60rpx;
+	display: flex;
+	align-items: center;
+	position: absolute;
+	top: 240rpx;
+	right: 0;
+	padding-left: 10rpx;
+	font-size: 28rpx;
+	font-family: MiSans, MiSans;
+	font-weight: 500;
+	color: #ffffff;
+	justify-content: space-evenly;
+	line-height: 44rpx;
+	z-index: 11;
+	border-radius: 20rpx 0rpx 0rpx 20rpx;
+	background-color: #ca5642;
+}
 </style>

+ 6 - 5
pages/course/detail.vue

@@ -268,10 +268,10 @@ export default {
 			return (contentId) => {
 				return this.state.recent_data && contentId == this.state.recent_data.content_id;
 			};
+		},
+		orderPayment() {
+			return this.state.card_auth && this.state.card_price ? this.state.card_price : this.state.price;
 		}
-		// orderPayment() {
-		// 	return this.state.card_auth && this.state.card_price ? this.state.card_price : this.state.price;
-		// }
 	},
 	onShareAppMessage(res) {
 		// console.log('onShareAppMessage', res);
@@ -298,6 +298,7 @@ export default {
 					that.hasLoad = true;
 					that.loadingType = -1;
 					that.state = res.data;
+					console.log(that.state, 88888888888);
 					if (res.data.has_examine) {
 						that.loadExamine();
 					}
@@ -362,7 +363,7 @@ export default {
 			// if (!this.checkLogin()) {
 			// 	return;
 			// }
-			console.log(this.state.chapter_list, 444);
+			// console.log(that.state.chapter_list, 444);
 			const content = this.state.chapter_list[chapterIndex].content_list[contentIndex];
 			if (!content.trial_duration && !content.trial_view) {
 				if (this.state.auth_state != 3) {
@@ -1091,4 +1092,4 @@ uni-page-head {
 	background: #eee;
 	border-radius: 40upx;
 }
-</style>
+</style>

+ 2 - 1
pages/course/index.vue

@@ -131,7 +131,7 @@ export default {
 	onLoad(options) {
 		that = this;
 		this.$api.getCategoryList({}, function (res) {
-			console.log(res.data, 9999);
+			// console.log(res.data, 9999);
 			that.categoryList = res.data;
 		});
 		// getCategoryList().then(([err, res]) => {
@@ -176,6 +176,7 @@ export default {
 					if (res.code == 1) {
 						if (res.data.items.length > 0) {
 							that.courseList = [...that.courseList, ...res.data.items];
+							console.log(that.courseList, '33333333333');
 						} else {
 							that.loadingType = 2;
 							if (that.page == 1) {

+ 208 - 165
pages/index/index.vue

@@ -1,21 +1,30 @@
 <template>
 	<view class="">
-		<view class="box">
+		<view class="box" style="">
 			<view class="nabBar">
-				<u-navbar @leftClick="leftClick" title="首页" :placeholder="true" bgColor="rgba(255,255,255,0)" :leftIconSize="0" titleStyle="font-weight:bold;color:#7a5831">
-					<view class="u-nav-slot" slot="left">
-						<text>切换城市</text>
-						<uni-icons type="tune" size="20"></uni-icons>
+				<u-navbar title="首页" :placeholder="true" bgColor="rgba(255,255,255,0)" :leftIconSize="0" titleStyle="font-weight:bold;color:#7a5831">
+					<view @click="cityShow = true" class="u-nav-slot" slot="left">
+						<text>{{ city }}</text>
+						<view class="">
+							<uni-icons type="bottom" size="20"></uni-icons>
+						</view>
 					</view>
 				</u-navbar>
-				<!-- <view class="" style="position: absolute; top: 55rpx; left: 40rpx">
-				<text>切换城市</text>
-				<uni-icons type="tune" size="20"></uni-icons>
-			</view> -->
 			</view>
+			<!-- 城市选择 -->
+			<u-action-sheet
+				@select="cityClick"
+				:actions="cityList"
+				:title="title"
+				:show="cityShow"
+				:closeOnClickOverlay="true"
+				:closeOnClickAction="true"
+				@close="close()"
+			></u-action-sheet>
 			<view class="group_1">
 				<view class="group_25 banxin2">
 					<u-swiper
+						keyName="image"
 						:list="mn_swiperList"
 						imgMode="aspectFill"
 						:height="120"
@@ -30,77 +39,46 @@
 					></u-swiper>
 				</view>
 			</view>
-			<template>
-				<view></view>
-			</template>
-
 			<view class="block_8">
-				<view @click="moreBtn" class="an" style="margin-top: 25rpx">
-					<u-notice-bar text="系统消息提示"></u-notice-bar>
+				<view @click="moreBtn" class="an" style="width: 650rpx; margin-top: 25rpx">
+					<u-notice-bar bgColor="#efd9ba" text="欢迎进入闽南魂"></u-notice-bar>
 				</view>
 
 				<view class="text-wrapper_17">
 					<text lines="1" class="text_32">闽南文化推荐</text>
-					<!-- <text @click="moreBtn" lines="1" class="text_33">查看更多》</text> -->
-				</view>
-				<!-- 闽南精神 -->
-				<view class="group_js">
-					<view class="box_js" @click="jingshenBtn">
-						<image class="box_19_js" src="https://p9.itc.cn/q_70/images03/20210721/23bcf2d618cb4f8a941eccd923294e78.png"></image>
-						<view class="image-text_js">
-							<image src="https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_js.png" class="image_js"></image>
-							<text lines="1" class="text-group_js">闽南精神</text>
-						</view>
-					</view>
 				</view>
+
 				<view class="grid_2">
-					<view class="group_23" @click="jianzhuBtn">
-						<view class="box_19">
-							<image class="box_19_img" src="https://img1.baidu.com/it/u=2349874273,3785455421&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=400"></image>
-							<view class="image-text_13">
-								<image src="/static/image/2019-07-03000000000018.png" class="image_20"></image>
-								<text lines="1" class="text-group_10">建筑文化</text>
-							</view>
-						</view>
-					</view>
-					<view class="group_24" @click="minsuBtn">
-						<view class="box_19">
-							<image class="box_19_img" src="https://img1.baidu.com/it/u=2977394516,3415116795&fm=253&fmt=auto&app=138&f=JPEG?w=641&h=361"></image>
-							<view class="image-text_13">
-								<image src="/static/image/传统吉祥纹样17.png" class="image_20"></image>
-								<text lines="1" class="text-group_10">民俗宗教</text>
+					<view class="group_23">
+						<view class="box_19" @click="functionBtn(index)" v-for="(item, index) in functionList" :key="item.id" :class="{ mnjs: index == 0 }">
+							<image class="box_19_img" :src="item.image"></image>
+							<view class="image-text_13" :class="{ mnjs2: index == 0 }">
+								<image :src="item.icon" class="image_20"></image>
+								<text lines="1" class="text-group_10">{{ item.title }}</text>
 							</view>
 						</view>
 					</view>
-					<view class="group_13" @click="feiyiBtn">
-						<view class="box_19">
-							<image class="box_19_img" src="https://img0.baidu.com/it/u=2448527499,3053317408&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=394"></image>
-							<view class="image-text_13">
-								<image src="/static/image/flower.png" class="image_20"></image>
-								<text lines="1" class="text-group_10">非遗传承</text>
-							</view>
-						</view>
-					</view>
-					<view class="group_14" @click="minyuBtn">
-						<view class="box_19">
-							<image class="box_19_img" src="https://img1.baidu.com/it/u=2717270821,618986584&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=327"></image>
-							<view class="image-text_13">
-								<image src="/static/image/BSV.png" class="image_20"></image>
-								<text lines="1" class="text-group_10">闽南语</text>
-							</view>
-						</view>
-					</view>
-
 					<view class="text-wrapper_18">
 						<text lines="1" class="text_23">精彩村史</text>
 						<text lines="1" class="text_24" @click="cs_listBtn">查看更多》</text>
 					</view>
-					<view class="cc banxin2" style="width: 100%; display: flex; justify-content: space-between">
-						<view class="" style="width: 320rpx">
-							<u-swiper height="150" :autoplay="true" circular :list="bannerlist1" previousMargin="30" nextMargin="30" radius="5" bgColor="#ffffff"></u-swiper>
+					<view class="banxin2" style="display: flex; justify-content: space-betweenl; margin-left: 12rpx">
+						<view class="" style="width: 305rpx">
+							<u-swiper
+								keyName="image"
+								height="150"
+								:autoplay="true"
+								circular
+								:list="bannerlist1"
+								previousMargin="30"
+								nextMargin="30"
+								radius="5"
+								bgColor="#ffffff"
+							></u-swiper>
 						</view>
-						<view class="" style="width: 320rpx">
+						<view class="" style="width: 305rpx; margin-left: 32rpx">
 							<u-swiper
+								keyName="image"
 								height="150"
 								:autoplay="true"
 								:circular="true"
@@ -116,17 +94,17 @@
 						<text lines="1" class="text_23">精彩推荐</text>
 						<!-- <text lines="1" class="text_8">查看更多》</text> -->
 					</view>
-					<view class="ad" style="padding-bottom: 100rpx">
-						<view class="box_22" v-for="item in tj_List" :key="item">
+					<view class="ad">
+						<view class="box_22" @click="recommendBtn(index)" v-for="(item, index) in recommendList" :key="item.id">
 							<view class="block_5">
-								<image style="width: 100%; height: 100%; border-radius: 0 50rpx 0 20rpx" :src="item.img"></image>
+								<image style="width: 100%; height: 100%; border-radius: 0 50rpx 0 20rpx" :src="item.thumbnail"></image>
 
 								<view class="tag_1">
-									<text lines="1" class="text_9">文物</text>
+									<text lines="1" class="text_9">{{ item.type_text }}</text>
 								</view>
 
 								<view class="tag_2">
-									<text lines="1" class="text_10">文物精品展</text>
+									<text lines="1" class="text_10">{{ item.title }}</text>
 								</view>
 							</view>
 						</view>
@@ -144,82 +122,140 @@ import { mapState } from 'vuex';
 
 let that;
 export default {
-	components: {},
-	onLoad(option) {
-		that = this;
-		// this.getBannerList();
-	},
-	computed: {
-		...mapState(['ceShi'])
-	},
 	data() {
 		return {
-			value1: 0,
-			da: 1,
-			db: 2,
-			tj_List: [
-				{ img: 'https://t12.baidu.com/it/u=961699429,199854606&fm=30&app=106&f=JPEG?w=640&h=427&s=E2804EA45471118C54BC7E610300E070' },
-				{ img: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/shouyeTJ.png' }
-			],
-			mn_swiperList: [
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt2.png',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt1.png',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt3.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt4.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt5.png'
-			],
+			isLoading: false,
+			page: '1',
+			main_body_id: '' /* 主体id */,
+			user: {} /*  用户信息*/,
+			city: '厦门' /* 选中城市 */,
+			cityShow: false,
+			cityList: [],
+			functionList: [] /* 首页功能菜单 */,
+			recommendList: [],
+
+			mn_swiperList: [],
 
-			bannerlist1: [
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/gd.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/hk.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/hp.jpg'
-			],
-			bannerlist2: [
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sz.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/tp.jpg',
-				'https://huli-app.wenlvti.net/app_static/minnanhun/image/zz.jpg'
-			]
+			bannerlist1: [],
+			bannerlist2: []
 		};
 	},
 	/* 页面触底 */
 	onReachBottom() {
-		console.log('触底了');
-		// console.log(this.ceShi);
+		if (this.isLoading) {
+			return;
+		} else {
+			this.page++;
+			this.getFlagList();
+		}
 	},
+	onLoad(option) {
+		that = this;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getCity();
+		this.getIndexBanner();
+		this.getIndexFunction();
+		this.getFlagList();
+		this.getHistoryMuseum();
+	},
+
 	methods: {
-		// 闽南精神
-		jingshenBtn() {
-			uni.navigateTo({
-				url: '/index_fenbao/mn_jingshen/mn_jingshen'
-			});
+		// 首页轮播
+		getIndexBanner() {
+			this.$api.getIndexBanner(
+				{
+					main_body_id: this.main_body_id
+				},
+				function (res) {
+					that.mn_swiperList = res.data;
+				}
+			);
 		},
-		leftClick() {
-			console.log('切换城市');
+		// 功能图片
+		getIndexFunction() {
+			this.$api.getIndexFunction({ main_body_id: this.main_body_id }, function (res) {
+				let iconList = ['/static/image/js_icon.png', '/static/image/jz_icon.png', '/static/image/ms_icon.png', '/static/image/fy_icon.png', '/static/image/mn_icon.png'];
+				that.functionList = res.data;
+				that.functionList.forEach((item, index) => {
+					item.icon = iconList[index];
+				});
+				// console.log(that.functionList, 3333333);
+			});
 		},
-		// 建筑
-		jianzhuBtn() {
-			uni.navigateTo({
-				url: '/index_fenbao/jianzhu/jianzhu'
+		// 获取城市主体
+		getCity() {
+			this.$api.getCity({ main_body_id: '' }, function (res) {
+				that.cityList = res.data;
+				that.cityList.forEach((item) => {
+					if (item.isChecked) {
+						that.$db.set('main_body_id', item.main_body_id);
+					}
+				});
 			});
 		},
-		// 民俗
-		minsuBtn() {
+		// 城市切换
+		cityClick(e) {
+			this.city = e.name;
+			this.$db.set('main_body_id', e.main_body_id);
+			this.user = this.$common.userInfo();
+			let mainBodyUserInfo = this.$db.get('mainBodyUserInfo');
+			let id = mainBodyUserInfo.id;
+			if (this.user == 'undefined' || this.user == '' || this.user == null) {
+				// this.$common.toLogin();
+			} else {
+				// console.log(id, e.main_body_id, 877878);
+				this.$api.refreshUser(
+					{
+						main_body_id: e.main_body_id,
+						main_body_user_id: id
+					},
+					function (res) {
+						// console.log(res, 131313);
+						that.user = res.data.user;
+						that.$db.set('user', that.user);
+						that.$db.set('mainBodyUserInfo', res.data.mainBodyUserInfo);
+					}
+				);
+			}
+			// console.log(e, 'index');
+			// console.log(user, 'user');
+			that.$common.successToShow('切换成功');
+		},
+
+		// 功能菜单
+		functionBtn(i) {
 			uni.navigateTo({
-				url: '/index_fenbao/minsu/minsu'
+				url: this.functionList[i].page
 			});
 		},
-		// 闽南语
-		minyuBtn() {
-			uni.navigateTo({
-				url: '/index_fenbao/minNanyu/minNanyu'
+		// 获取精彩推荐内容
+		getFlagList() {
+			this.isLoading = true;
+			this.$api.getFlagList({ main_body_id: this.main_body_id, page: this.page, pageSize: '10', flag: 'recommend' }, function (res) {
+				// console.log(res, 666666666);
+				that.isLoading = false;
+				that.recommendList = [...that.recommendList, ...res.data];
 			});
 		},
-		// 非遗
-		feiyiBtn() {
-			uni.navigateTo({
-				url: '/index_fenbao/feiyi/feiyi'
+		// 史馆列表
+		getHistoryMuseum() {
+			this.$api.getHistoryMuseum({ main_body_id: this.main_body_id }, function (res) {
+				const keys = Object.keys(res.data);
+				// console.log(keys, 'keys');
+				let valuesArray = [];
+				keys.forEach((key) => {
+					valuesArray.push(res.data[key]);
+				});
+				// 取前三个和后三个元素
+				that.bannerlist1 = valuesArray.slice(0, 3);
+				that.bannerlist2 = valuesArray.slice(-3);
+				console.log(that.bannerlist2);
 			});
 		},
+		//精彩推荐内容
+		recommendBtn(i) {
+			this.$common.navigateTo(this.recommendList[i].page);
+		},
 		// 闽南文化推荐,
 		moreBtn() {
 			uni.navigateTo({
@@ -233,27 +269,17 @@ export default {
 				url: '/index_fenbao/cs_liebiao/cs_liebiao'
 			});
 		},
-
-		getBannerList() {
-			this.$api.getBannerList({ block: 'home' }, function (res) {
-				// console.log(res);
-				if (res.code > 0) {
-					that.bannerlist = [];
-					for (var i = 0; i < res.data.length; i++) {
-						if (res.data[i].type == 'banner') {
-							that.bannerlist.push({
-								title: res.data[i].title,
-								url: that.$config.baseUrl + res.data[i].image,
-								page: res.data[i].url
-							});
-						}
-					}
-				}
-			});
-		},
+		// 点击轮播
 		bannerClick(index) {
-			console.log(index);
-			this.$common.navigateTo(this.bannerlist[index].page);
+			if (this.mn_swiperList[index].page != null) {
+				// console.log(this.mn_swiperList[index].page);
+				uni.navigateTo({
+					url: this.mn_swiperList[index].page
+				});
+			}
+		},
+		close() {
+			this.cityShow = false;
 		}
 	}
 };
@@ -263,14 +289,24 @@ export default {
 /deep/.u-swiper-indicator__wrapper__dot--active {
 	width: 5px !important;
 }
+/deep/.u-reset-button.data-v-b62b882e {
+	height: 120rpx !important;
+}
+/deep/.u-line.data-v-727e452e {
+	display: none !important;
+}
+/deep/.u-notice-bar.data-v-24c07869 {
+	width: 650rpx !important;
+	margin-left: 50rpx !important;
+}
 .box {
 	height: auto;
 	width: 100%;
-	/* background-image: url('https://huli-app.wenlvti.net/app_static/wuyuan/static/shouhu/wyj-feiyi3-001.png'); */
-	/* background-size: 100% 100%; */
+	background-image: url('https://huli-app.wenlvti.net/app_static/minnanhun/image/index_bg.jpg');
+	background-size: 100% 100%;
 	background-color: #f8f8f8;
 	background-attachment: fixed;
-	border-radius: 16px 16px 0 0;
+
 	position: relative;
 	display: flex;
 	flex-direction: column;
@@ -279,7 +315,12 @@ export default {
 	top: 0 !important;
 	left: 5rpx !important;
 }
-
+.mnjs {
+	width: 650rpx !important;
+}
+.mnjs2 {
+	margin: 35rpx 0 0 225rpx !important;
+}
 .qh_icon {
 	position: absolute;
 	top: 0;
@@ -297,18 +338,20 @@ export default {
 }
 
 .u-nav-slot {
+	display: flex;
 	margin-left: 20rpx;
 }
 .nabBar {
 	/* height: 200rpx; */
-	background-image: url('https://huli-app.wenlvti.net/app_static/minnanhun/image/shouyeBJ.png');
-	background-size: cover;
+	/* 	background-image: url('https://huli-app.wenlvti.net/app_static/minnanhun/image/shouyeBJ.png');
+	background-size: cover; */
 }
 
 .group_1 {
-	width: 750rpx;
+	width: 720rpx;
 	display: flex;
 	margin-top: 130rpx;
+	margin-left: 12rpx;
 	flex-direction: column;
 	justify-content: flex-end;
 }
@@ -441,12 +484,10 @@ export default {
 	margin-top: 7rpx;
 }
 .grid_2 {
-	width: 687rpx;
-	height: 364rpx;
 	flex-wrap: wrap;
 	display: flex;
 	flex-direction: row;
-	margin: 27rpx 0 0 32rpx;
+	margin: 27rpx 0 0 42rpx;
 }
 
 .group_js {
@@ -507,18 +548,19 @@ export default {
 }
 
 .group_23 {
-	height: 166rpx;
+	width: 665rpx;
 	display: flex;
-	flex-direction: column;
-	width: 330rpx;
-	margin: 0 27rpx 32rpx 0;
+	flex-wrap: wrap;
+	justify-content: space-between;
+	margin: 0 60rpx 32rpx 6rpx;
 }
 .box_19 {
-	width: 330rpx;
+	width: 312rpx;
 	height: 166rpx;
 	position: relative;
 	display: flex;
 	flex-direction: row;
+	margin-top: 20rpx;
 }
 .box_19_img {
 	width: 100%;
@@ -543,13 +585,13 @@ export default {
 	display: flex;
 	flex-direction: column;
 	justify-content: space-between;
-	margin: 35rpx 0 0 56rpx;
+	margin: 35rpx 0 0 45rpx;
 	z-index: 2;
 }
 .image_20 {
 	width: 75rpx;
 	height: 65rpx;
-	margin-left: 72rpx;
+	margin-left: 76rpx;
 }
 .text-group_10 {
 	width: 233rpx;
@@ -672,9 +714,10 @@ export default {
 .block_5 {
 	position: relative;
 	height: 345rpx;
-	width: 686rpx;
+	width: 645rpx;
 	display: flex;
 	flex-direction: column;
+	margin-left: 9rpx;
 }
 
 .tag_1 {
@@ -715,8 +758,8 @@ export default {
 	width: 147rpx;
 	height: 29rpx;
 	overflow-wrap: break-word;
-	color: rgba(255, 255, 255, 1);
-	font-size: 30rpx;
+	color: #ffffff;
+	font-size: 34rpx;
 	font-family: Adobe Heiti Std R;
 	font-weight: normal;
 	text-align: left;

+ 234 - 75
pages/jiyi/jiyi.vue

@@ -36,29 +36,66 @@
 						<!-- <text lines="1" class="text_7">查看更多》</text> -->
 					</view>
 					<!-- 瀑布流 -->
-
-					<custom-waterfalls-flow :value="list" style="width: 90%; margin: auto">
-						<view class="item" style="position: relative" v-for="(item, index) in list" :key="index" slot="slot{{index}}">
-							<view class="title_pubu">
-								{{ item.title }}
+					<uv-waterfall v-model="list" :add-time="10" left-gap="10" right-gap="10" :column-gap="columnGap" @changeList="changeList">
+						<!-- 第一列数据 -->
+						<template v-slot:list1>
+							<!-- 为了磨平部分平台的BUG,必须套一层view -->
+							<view>
+								<view @click="waterfallDetails(index)" v-for="(item, index) in list1" :key="item.id" class="waterfall-item">
+									<view class="waterfall-item__image" :style="[imageStyle(item)]">
+										<image :src="item.image" mode="widthFix" style="border-radius: 25rpx 60rpx 0rpx 30rpx" :style="{ width: item.width + 'px' }"></image>
+									</view>
+									<view class="like_box" @click="likeBtn(index)">
+										<uni-icons v-if="list1[index].is_like > 0" type="heart-filled" color="red" size="20"></uni-icons>
+										<uni-icons v-else type="heart-filled" color="#f8f8f8" size="20"></uni-icons>
+										<text style="font-size: 28rpx">{{ list1[index].likes }}</text>
+									</view>
+									<view class="waterfall-item__ft">
+										<view class="waterfall-item__ft__title">
+											<text class="value">{{ item.title }}</text>
+										</view>
+									</view>
+								</view>
+							</view>
+						</template>
+						<!-- 第二列数据 -->
+						<template v-slot:list2>
+							<!-- 为了磨平部分平台的BUG,必须套一层view -->
+							<view>
+								<view @click="waterfallDetails2(index)" v-for="(item, index) in list2" :key="item.id" class="waterfall-item">
+									<view class="waterfall-item__image" :style="[imageStyle(item)]">
+										<image :src="item.image" mode="widthFix" style="border-radius: 25rpx 60rpx 0rpx 30rpx" :style="{ width: item.width + 'px' }"></image>
+									</view>
+									<view class="like_box" style="" @click="likeBtn2(index)">
+										<uni-icons v-if="list2[index].is_like > 0" type="heart-filled" color="red" size="20"></uni-icons>
+										<uni-icons v-else type="heart-filled" color="#f8f8f8" size="20"></uni-icons>
+										<text style="font-size: 28rpx">{{ list2[index].likes }}</text>
+									</view>
+									<view class="waterfall-item__ft">
+										<view class="waterfall-item__ft__title">
+											<text class="value">{{ item.title }}</text>
+										</view>
+									</view>
+								</view>
 							</view>
-							<!-- <view class="desc">{{ item.desc }}</view> -->
-						</view>
-					</custom-waterfalls-flow>
+						</template>
+					</uv-waterfall>
 				</view>
 			</view>
 		</view>
-
 		<mntabBar footerTab="1" :messageCount="0"></mntabBar>
 	</view>
 </template>
 
 <script>
 import { mapState } from 'vuex';
+import { guid } from '@/uni_modules/uv-ui-tools/libs/function/index.js';
 let that;
 export default {
 	data() {
 		return {
+			main_body_id: '',
+
 			bannerlist: [
 				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt2.png',
 				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt1.png',
@@ -67,85 +104,172 @@ export default {
 				'https://huli-app.wenlvti.net/app_static/minnanhun/image/sy_lbt5.png'
 			],
 			list: [
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy1.png',
-					title: '传统捏泥人',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy2.png',
-					title: '青龙宫',
-					desc: '描述描述描述描述描述描述描述描述1'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy3.png',
-					title: '火把节',
-					desc: '11'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy9.png',
-					title: '老物件',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy4.png',
-					title: '林后青龙宫',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy10.png',
-					title: '书籍',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy7.png',
-					title: '建筑',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy8.png',
-					title: '老钟表',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy14.png',
-					title: '老物件',
-					desc: '描述描述描述描述描述描述描述描述2'
-				}
-			]
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy1.png',
+				// 	title: '传统捏泥人',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy2.png',
+				// 	title: '青龙宫',
+				// 	desc: '描述描述描述描述描述描述描述描述1'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy3.png',
+				// 	title: '火把节',
+				// 	desc: '11'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy9.png',
+				// 	title: '老物件',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy4.png',
+				// 	title: '林后青龙宫',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy10.png',
+				// 	title: '书籍',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy7.png',
+				// 	title: '建筑',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy8.png',
+				// 	title: '老钟表',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// },
+				// {
+				// 	image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy14.png',
+				// 	title: '老物件',
+				// 	desc: '描述描述描述描述描述描述描述描述2'
+				// }
+			],
+			list1: [], // 瀑布流第一列数据
+			list2: [], // 瀑布流第二列数据
+			columnGap: 10
 		};
 	},
 	onLoad(option) {
 		that = this;
-		// this.getBannerList();
+		this.main_body_id = this.$db.get('main_body_id');
+
+		this.getContentList();
 	},
 	computed: {
-		...mapState(['ceShi'])
+		imageStyle(item) {
+			return (item) => {
+				const v = uni.upx2px(750) - this.leftGap - this.rightGap - this.columnGap;
+				const w = v / 2;
+				const rate = w / item.w;
+				const h = rate * item.h;
+				return {
+					width: w + 'px',
+					height: h + 'px'
+				};
+			};
+		}
 	},
 	methods: {
+		imageClick(i) {
+			console.log(i);
+		},
 		cunShiBtn() {
 			uni.navigateTo({
 				url: '/index_fenbao/cs_liebiao/cs_liebiao'
 			});
 		},
-		getBannerList() {
-			this.$api.getBannerList({ block: 'home' }, function (res) {
-				// console.log(res);
-				if (res.code > 0) {
-					that.bannerlist = [];
-					for (var i = 0; i < res.data.length; i++) {
-						if (res.data[i].type == 'banner') {
-							that.bannerlist.push({
-								title: res.data[i].title,
-								url: that.$config.baseUrl + res.data[i].image,
-								page: res.data[i].url
-							});
-						}
-					}
-				}
+
+		// 瀑布流数据
+		getContentList() {
+			this.$api.getContentList({ main_body_id: 2, model_id: 8 }, function (res) {
+				res.data.forEach((item) => {
+					item.is_like = 0;
+				});
+				that.list = res.data;
 			});
+		},
+		// // 内容详情
+		// getContentDetail(id) {
+		// 	console.log(id, '瀑布流');
+		// 	this.$api.getContentDetail({ main_body_id: '2', id: '245' }, function (res) {
+		// 		console.log(res, '详情');
+		// 	});
+		// },
+		changeList(e) {
+			// console.log(e, '瀑布流');
+			this[e.name].push(e.value);
+		},
+		// 第一列详情
+		waterfallDetails(i) {
+			// console.log(this.list1[i].id, 888888888);
+			// this.getContentDetail(this.list1[i].id);
+		},
+		// 第二列详情
+		waterfallDetails2(i) {
+			// console.log(this.list2[i].id, 888888888);
+			// this.getContentDetail(this.list2[i].id);
+		},
+		// 点赞
+		likeBtn(i) {
+			if (this.list1[i].is_like == 0) {
+				this.$api.like(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list1[i].id
+					},
+					function (res) {
+						that.list1[i].is_like = 1;
+						that.list1[i].likes++;
+						that.$common.successToShow('成功点赞');
+					}
+				);
+			} else {
+				that.$api.unLike(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list1[i].id
+					},
+					function (res) {
+						that.list1[i].is_like = 0;
+						that.list1[i].likes--;
+						that.$common.successToShow('取消点赞');
+					}
+				);
+			}
+		},
+		// 点赞
+		likeBtn2(i) {
+			if (this.list2[i].is_like == 0) {
+				this.$api.like(
+					{
+						main_body_id: this.main_body_id,
+						content_id: this.list2[i].id
+					},
+					function (res) {
+						that.list2[i].is_like = 1;
+						that.list2[i].likes++;
+						that.$common.successToShow('成功点赞');
+					}
+				);
+			} else {
+				that.$api.unLike(
+					{
+						main_body_id: that.main_body_id,
+						content_ids: that.list2[i].id
+					},
+					function (res) {
+						that.list2[i].is_like = 0;
+						that.list2[i].likes--;
+						that.$common.successToShow('取消点赞');
+					}
+				);
+			}
 		}
 	}
 };
@@ -163,6 +287,40 @@ export default {
 	display: flex;
 	flex-direction: column;
 }
+.waterfall-item {
+	margin-bottom: 20rpx;
+}
+.waterfall-item__ft {
+	position: relative;
+}
+.waterfall-item__ft__title {
+	width: 100%;
+	height: 65rpx;
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	line-height: 65rpx;
+	background-color: #ca5642;
+	font-size: 30rpx;
+	text-align: center;
+	color: #ffffff;
+	border-radius: 0 0 10rpx 10rpx;
+}
+.like_box {
+	position: relative;
+	top: -80rpx;
+	left: 240rpx;
+	display: flex;
+	align-items: center;
+	color: #ffffff;
+	justify-content: space-evenly;
+	height: 40rpx;
+	width: 100rpx;
+	border-radius: 30rpx;
+}
+.active {
+	color: red;
+}
 .nabBar {
 	height: 340rpx;
 }
@@ -184,7 +342,8 @@ export default {
 	line-height: 65rpx;
 	background-color: #ca5642;
 	font-size: 30rpx;
-	text-align: center;
+	display: flex;
+	justify-content: space-around;
 	color: #ffffff;
 	position: absolute;
 	bottom: 0;

+ 117 - 59
pages/user/index.vue

@@ -5,38 +5,23 @@
 			<view class="group_1">
 				<view class="group_6">
 					<view class="group_7">
-						<view class="section_14">
+						<view @click="modifyShow = true" class="section_14">
 							<view class="single-avatar_1">
-								<image
-									style="width: 100%; height: 100%; border-radius: 50%"
-									src="https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/94a543a125164a2a9c1702cd6f202535_mergeImage.png"
-									class=""
-								></image>
+								<image style="width: 100%; height: 100%; border-radius: 50%" :src="userAvatar" class=""></image>
 							</view>
-							<text lines="1" class="text_9">白云下的棉絮</text>
+
+							<text lines="1" class="text_9">{{ userNickname }}</text>
 							<view style="position: absolute; right: 50rpx; top: 190rpx">
 								<u-icon name="arrow-right" color="#312520" size="24"></u-icon>
 							</view>
 						</view>
 
 						<view class="mn_wd">
-							<view class="" @click="myLiktBtn(0)">
-								<view class="md_item_wd">
-									<uni-icons type="upload-filled" color="#329fff" size="25"></uni-icons>
-								</view>
-								<view style="margin-top: 10rpx">我的投稿</view>
-							</view>
-							<view class="" @click="myLiktBtn(1)">
-								<view class="md_item_wd">
-									<uni-icons type="star-filled" size="25" color="#ff9617"></uni-icons>
-								</view>
-								<view style="margin-top: 10rpx">我的收藏</view>
-							</view>
-							<view class="" @click="myLiktBtn(2)">
+							<view v-for="(item, index) in myLike" :key="item.id" class="" @click="myLiktBtn(index)">
 								<view class="md_item_wd">
-									<uni-icons type="heart-filled" size="25" color="#ff6644"></uni-icons>
+									<uni-icons :type="item.type" :color="item.color" size="25"></uni-icons>
 								</view>
-								<view style="margin-top: 10rpx">我的喜欢</view>
+								<view style="margin-top: 10rpx">{{ item.title }}</view>
 							</view>
 						</view>
 						<!-- 订单管理 -->
@@ -195,6 +180,16 @@
 					<!-- 文化笔记end -->
 				</view>
 			</view>
+			<u-popup :show="modifyShow" mode="bottom">
+				<view class="ziLiao">
+					<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
+						<image style="width: 100rpx; height: 100rpx" :src="userAvatar"></image>
+					</button>
+
+					<input class="ipt" @change="blurname" v-model="userNickname" type="nickname" placeholder="请输入昵称" />
+					<button class="isOK" type="primary" @click="isOk">确定</button>
+				</view>
+			</u-popup>
 			<mntabBar footerTab="4" :messageCount="0"></mntabBar>
 		</view>
 	</view>
@@ -209,31 +204,48 @@ export default {
 	components: {},
 	data() {
 		return {
+			id: '',
+			body_id: '',
+			modifyShow: false /*修改资料  */,
 			isLogin: false,
 			show: false,
-			username: '未登录',
-			face: '',
 			user: {
-				nickname: '未登录',
-				id: '未登录'
+				nickname: '',
+				avatar: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
 			},
+			mainBodyUserInfo: {},
 			avatarUrl: '',
-			wxnickname: '',
 			getFace: false,
-			userdata: {
-				friendsLists: [],
-				friendsTotal: 0,
-				user: {
-					score: '0',
-					exp: '0'
+			myLike: [
+				{
+					title: '我的投稿',
+					id: 0,
+					type: 'upload-filled',
+					color: '#329fff'
+				},
+				{
+					title: '我的收藏',
+					id: 1,
+					type: 'star-filled',
+					color: '#ff9617'
+				},
+				{
+					title: '我的喜欢',
+					id: 2,
+					type: 'heart-filled',
+					color: '#ff6644'
 				}
-			}
+			]
 		};
 	},
 	onShow() {
+		this.mainBodyUserInfo = this.$db.get('mainBodyUserInfo');
+		this.id = this.mainBodyUserInfo.id;
+		this.body_id = this.$db.get('main_body_id');
+
+		this.refreshUser();
 		/* 调用userInfo()从本地获取用户信息 */
 		this.user = this.$common.userInfo();
-
 		if (this.user && this.user.nickname.indexOf('微信') >= 0) {
 			this.getFace = true;
 		}
@@ -242,42 +254,78 @@ export default {
 		/* 来到我的页面判断用户是否登录 */
 		_this = this;
 		this.user = this.$common.userInfo();
-		console.log(this.user);
+		this.mainBodyUserInfo = this.$db.get('mainBodyUserInfo');
+		console.log(this.user, 9999999999);
 		if (this.user === 'undefined' || this.user === '' || this.user === [] || this.user === null) {
 			/* 跳转到登录页 */
 			this.$common.toLogin();
 		} else {
 			/* 刷新 */
-			this.$api.refreshUser({}, (val) => {
-				console.log(val);
-				if (val.code == 401) {
-					this.$common.navigateTo('/pages/user/login');
-					return;
-				}
-
-				this.user = val.data.user;
-				this.avatarUrl = this.user.avatar;
-				this.auth = val.data.auth;
-				this.$db.set('user', val.data.user);
-				this.$db.set('auth', val.data.auth);
-				this.$api.getWuyuanUser({}, (val) => {
-					console.log(val);
-					this.userdata = val.data;
-				});
-			});
+			// this.refreshUser();
 			this.isLogin = true;
 		}
 	},
 	computed: {
-		...mapState(['ceShi'])
+		userAvatar() {
+			return this.mainBodyUserInfo.avatar ? this.mainBodyUserInfo.avatar : this.user.avatar;
+		},
+		userNickname() {
+			return this.mainBodyUserInfo.nickname ? this.mainBodyUserInfo.nickname : this.user.nickname;
+		}
 	},
 	methods: {
-		// qieHuan() {
-		// 	this.showCeshi = false;
-		// },
-		myLiktBtn(id) {
+		// 刷新信息
+		refreshUser() {
+			this.$api.refreshUser(
+				{
+					main_body_id: this.body_id,
+					main_body_user_id: this.id
+				},
+				(val) => {
+					console.log(val, 333333);
+					if (val.code == 401) {
+						this.$common.navigateTo('/pages/user/login');
+						return;
+					}
+					_this.user = val.data.user;
+					_this.avatarUrl = _this.user.avatar;
+					_this.auth = val.data.auth;
+					_this.$db.set('user', val.data.user);
+					_this.$db.set('auth', val.data.auth);
+					_this.$db.set('mainBodyUserInfo', val.data.mainBodyUserInfo);
+				}
+			);
+		},
+		// 获取头像
+		onChooseAvatar(e) {
+			this.mainBodyUserInfo.avatar = e.detail.avatarUrl;
+		},
+		// 获取昵称
+		blurname(e) {
+			this.mainBodyUserInfo.nickname = e.detail.value;
+		},
+
+		isOk() {
+			this.modifyShow = false;
+			// 修改信息
+			this.$api.editMainBodyUser(
+				{
+					main_body_id: this.body_id,
+					main_body_user_id: this.id,
+					nickname: this.mainBodyUserInfo.nickname,
+					avatar: this.mainBodyUserInfo.avatar
+				},
+				function (res) {
+					if (res.code == 1) {
+						_this.$common.successToShow('修改成功');
+						_this.$db.set('mainBodyUserInfo', _this.mainBodyUserInfo);
+					}
+				}
+			);
+		},
+		myLiktBtn(i) {
 			uni.navigateTo({
-				url: '/user_fenbao/myLike?id=' + id
+				url: '/user_fenbao/myLike?id=' + this.myLike[i].id
 			});
 		},
 		// 积分
@@ -299,6 +347,13 @@ export default {
 	border-radius: 20rpx;
 	margin: 20rpx 32rpx 0 32rpx;
 }
+.ipt {
+	height: 60rpx;
+	border: 1px solid #efefef;
+}
+.isOK {
+	margin-top: 30rpx;
+}
 .md_item_wd {
 	text-align: center;
 }
@@ -909,4 +964,7 @@ xt-group_3 {
 	line-height: 24rpx;
 	margin: 26rpx 0 30rpx 422rpx;
 }
+.ziLiao {
+	height: 400rpx;
+}
 </style>

+ 19 - 11
pages/user/login.vue

@@ -17,9 +17,9 @@
 					<view class="cu-bar btn-group margin-top">
 						<button class="cu-btn bg-orange shadow-blur round" :loading="loading" @tap="login">{{ loading ? '登录中...' : '登 录' }}</button>
 					</view>
-					<view class="flex justify-center">
+					<!-- 	<view class="flex justify-center">
 						<view class="text-gray text-sm margin-top-xl" @tap="register">注册新账户</view>
-					</view>
+					</view> -->
 				</view>
 			</view>
 			<!--  #endif -->
@@ -46,6 +46,7 @@
 <script>
 var _this;
 import { baseLogo } from '../../config/config.js';
+
 export default {
 	data() {
 		return {
@@ -61,11 +62,11 @@ export default {
 			redirect: ''
 		};
 	},
+
 	mounted() {
 		_this = this;
 	},
 	onLoad(e) {
-		console.log(e);
 		if (e.redirect) {
 			this.redirect = e.redirect;
 		}
@@ -82,6 +83,9 @@ export default {
 		// #endif
 	},
 	methods: {
+		// onChooseAvatar(e) {
+		// 	console.log(e, '头像');
+		// },
 		wxLogin() {
 			wx.login({
 				success: (res) => {
@@ -101,9 +105,9 @@ export default {
 		// 	_this.ismobile=true;
 
 		// },
-		register() {
-			this.$common.navigateTo('register');
-		},
+		// register() {
+		// 	this.$common.navigateTo('register');
+		// },
 		login() {
 			_this.loading = true;
 			if (_this.username == '' || _this.username.length < 11) {
@@ -179,10 +183,9 @@ export default {
 			uni.getUserProfile({
 				desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
 				success: (res) => {
-					console.log(res, 888888);
+					// console.log(res, 888888);
 					var invite_id = _this.$db.get('invite_id');
 					if (!invite_id) invite_id = 0;
-					console.log(invite_id);
 					_this.$api.third(
 						{
 							code: _this.code,
@@ -193,10 +196,10 @@ export default {
 							signature: res.signature,
 							invite_id: invite_id,
 							appid: 'wx9a27d13d29890754',
-							diyname: 'xiamen'
+							main_body_id: '1'
 						},
 						(data) => {
-							console.log(data);
+							console.log(data, 33333);
 							// console.log(data.data.userinfo)
 							var res = data.data;
 							if (data.code == 1) {
@@ -207,10 +210,15 @@ export default {
 									this.$db.set('auth', res.auth);
 									this.$db.set('user', res.userinfo);
 									this.$db.set('token', res.auth.token);
+									this.$db.set('mainBodyUserInfo', res.mainBodyUserInfo);
+									// // 主体id
+									// this.$db.set('main_body_id', res.mainBodyUserInfo.main_body_id);
+									// // // 主体用户id
+									// this.$db.set('main_body_user_id', res.mainBodyUserInfo.id);
 									this.$store.commit('setAccessToken', res.auth.token);
 									this.$store.commit('setActivityId', 2);
 								} catch (e) {
-									console.log('e: ', e);
+									// console.log('e: ', e);
 								}
 								uni.switchTab({
 									url: '/pages/index/index'

+ 3 - 3
pages/xueYuan/xueYuan.vue

@@ -88,8 +88,8 @@
 						<text lines="1" class="text_21">推荐课程</text>
 						<text lines="1" class="text_22">查看更多》</text>
 					</view> -->
-					<!-- 
-					<view class="group_13" v-for="item in tjkcList" :key="item" @click="kcBtn">
+
+					<!-- 		<view class="group_13" v-for="item in tjkcList" :key="item" @click="kcBtn">
 						<image :src="item.img" class="image_12"></image>
 						<view class="group_14">
 							<view class="text-group_9">
@@ -164,7 +164,7 @@ export default {
 		this.getHomeData();
 	},
 	computed: {
-		...mapState(['ceShi'])
+		// ...mapState(['ceShi'])
 	},
 	methods: {
 		// 新版活动临时跳转

二進制
static/image/commossion_a.png


二進制
static/image/fy_icon.png


二進制
static/image/home_a.png


二進制
static/image/icon_map.png


二進制
static/image/invite_a.png.png


二進制
static/image/js_icon.png


二進制
static/image/jz_bg.png


二進制
static/image/jz_icon.png


二進制
static/image/jz_tit.png


二進制
static/image/jz_titbg.png


二進制
static/image/mine_a.png


二進制
static/image/mn_icon.png


二進制
static/image/ms_icon.png


二進制
static/image/wajue.png


+ 2 - 4
store/index.js

@@ -15,7 +15,7 @@ const store = new Vuex.Store({
 		accessToken: null,
 		activityId: null,
 		globalConfig: {},
-		ceShi: true
+
 
 	},
 	modules: {
@@ -23,9 +23,7 @@ const store = new Vuex.Store({
 		examine: ExamineModule,
 	},
 	mutations: {
-		qiehuan(state, val) {
-			state.ceShi = val
-		},
+
 
 		lock(state, key) {
 			state.lockData[key] = Util.getTimestamp(null) + 5

+ 3 - 2
store/module/user.js

@@ -4,7 +4,8 @@ export default {
 	namespaced: true,
 	state: {
 		uploadAvatarTip: null,
-		userInfo: {}
+		userInfo: {},
+
 	},
 	mutations: {
 		setUserInfo(state, userInfo) {
@@ -23,4 +24,4 @@ export default {
 			return state.uploadAvatarTip
 		},
 	}
-}
+}

+ 228 - 139
user_fenbao/myLike.vue

@@ -18,25 +18,61 @@
 			></u-tabs>
 		</view>
 		<!-- 投稿 -->
-		<view class="pubu" v-if="id1 == 0">
-			<custom-waterfalls-flow :value="list" style="width: 90%; margin: auto">
-				<view class="item" @click="itemBtn(index)" style="position: relative" v-for="(item, index) in list" :key="index" slot="slot{{index}}">
-					<view class="title_pubu">
-						{{ item.title }}
-						<view class="" style="position: relative">
-							<view class="box_checkbox">
-								<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange(index)">
-									<u-checkbox :customStyle="{ marginBottom: '8px' }" shape="circle"></u-checkbox>
-								</u-checkbox-group>
+		<view class="pubu">
+			<!-- 瀑布流 -->
+			<u-checkbox-group v-model="deleteList" placement="column" @change="checkboxChange">
+				<uv-waterfall ref="waterfall" v-model="list" :add-time="10" left-gap="10" right-gap="10" :column-gap="columnGap" @changeList="changeList">
+					<!-- 第一列数据 -->
+					<template v-slot:list1>
+						<!-- 为了磨平部分平台的BUG,必须套一层view -->
+						<view>
+							<view @click="ceshi(index)" v-for="(item, index) in list1" :key="item.id" class="waterfall-item">
+								<view class="waterfall-item__image" :style="[imageStyle(item)]">
+									<image :src="item.image" mode="widthFix" style="border-radius: 25rpx 60rpx 0rpx 30rpx" :style="{ width: item.width + 'px' }"></image>
+								</view>
+								<view class="waterfall-item__ft">
+									<view class="waterfall-item__ft__title">
+										<text class="value">{{ item.title }}</text>
+										<view v-if="checkboxShow" class="" style="position: relative">
+											<view class="box_checkbox">
+												<u-checkbox :value="item.id" :name="item.id" :customStyle="{ marginBottom: '8px' }" shape="circle"></u-checkbox>
+											</view>
+										</view>
+									</view>
+								</view>
 							</view>
+							<!-- </u-checkbox-group> -->
 						</view>
-					</view>
-				</view>
-			</custom-waterfalls-flow>
+					</template>
+					<!-- 第二列数据 -->
+					<template v-slot:list2>
+						<!-- 为了磨平部分平台的BUG,必须套一层view -->
+						<view>
+							<!-- <u-checkbox-group v-model="deleteList" placement="column" @change="checkboxChange2"> -->
+							<view @click="ceshi(index)" v-for="(item, index) in list2" :key="item.id" class="waterfall-item">
+								<view class="waterfall-item__image" :style="[imageStyle(item)]">
+									<image :src="item.image" mode="widthFix" style="border-radius: 25rpx 60rpx 0rpx 30rpx" :style="{ width: item.width + 'px' }"></image>
+								</view>
+								<view class="waterfall-item__ft">
+									<view class="waterfall-item__ft__title">
+										<text class="value">{{ item.title }}</text>
+										<view v-if="checkboxShow" class="" style="position: relative">
+											<view class="box_checkbox">
+												<u-checkbox :value="item.id" :name="item.id" :customStyle="{ marginBottom: '8px' }" shape="circle"></u-checkbox>
+											</view>
+										</view>
+									</view>
+								</view>
+							</view>
+						</view>
+					</template>
+				</uv-waterfall>
+			</u-checkbox-group>
+			<!-- 底部删除管理 -->
 			<view class="guanLi">
-				<view style="display: flex; align-items: center" v-if="guanLiShow">
+				<view style="display: flex; align-items: center" v-if="checkboxShow">
 					<view style="margin-right: 260rpx">
-						<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange(index)">
+						<u-checkbox-group @change="deleteAll" v-model="checkboxValue2" placement="column">
 							<u-checkbox :customStyle="{ marginBottom: '8px' }" shape="circle" label="全部"></u-checkbox>
 						</u-checkbox-group>
 					</view>
@@ -45,92 +81,39 @@
 						<view class="">删除</view>
 					</view>
 				</view>
-				<view class="guanLi2" @click="guanLiShow = !guanLiShow">
+				<view class="guanLi2" @click="checkboxShow = !checkboxShow">
 					<view class="left_jl">
 						<uni-icons type="gear" size="20"></uni-icons>
 					</view>
-					<view class="left_jl">{{ guanLiShow ? '退出管理' : '管理' }}</view>
-				</view>
-			</view>
-		</view>
-		<!-- 收藏 -->
-		<view class="pubu" v-if="id1 == 1">
-			2
-			<!-- <custom-waterfalls-flow :value="list" style="width: 90%; margin: auto">
-				<view class="item" style="position: relative" v-for="(item, index) in list" :key="index" slot="slot{{index}}">
-					<view class="title_pubu">
-						{{ item.title }}
-					</view>
-				</view>
-			</custom-waterfalls-flow> -->
-			<view class="guanLi">
-				<view style="display: flex; align-items: center" v-if="guanLiShow">
-					<view style="margin-right: 260rpx">
-						<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange(index)">
-							<u-checkbox :customStyle="{ marginBottom: '8px' }" shape="circle" label="全部"></u-checkbox>
-						</u-checkbox-group>
-					</view>
-					<view class="sc" @click="deleteShow = true">
-						<uni-icons type="trash" color=" #ffffff" size="20"></uni-icons>
-						<view class="">删除</view>
-					</view>
-				</view>
-				<view class="guanLi2" @click="guanLiShow = !guanLiShow">
-					<view class="left_jl">
-						<uni-icons type="gear" size="20"></uni-icons>
+					<view class="">
+						<view v-if="checkboxShow" class="left_jl">退出管理</view>
+						<view v-else class="left_jl">管理</view>
 					</view>
-					<view class="left_jl">{{ guanLiShow ? '退出管理' : '管理' }}</view>
-				</view>
-			</view>
-		</view>
-		<!-- 喜欢 -->
-		<view class="pubu" v-if="id1 == 2">
-			3
-			<!-- <custom-waterfalls-flow :value="list" style="width: 90%; margin: auto">
-				<view class="item" style="position: relative" v-for="(item, index) in list" :key="index" slot="slot{{index}}">
-					<view class="title_pubu">
-						{{ item.title }}
-					</view>
-				</view>
-			</custom-waterfalls-flow> -->
-			<view class="guanLi">
-				<view style="display: flex; align-items: center" v-if="guanLiShow">
-					<view style="margin-right: 260rpx">
-						<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange(index)">
-							<u-checkbox :customStyle="{ marginBottom: '8px' }" shape="circle" label="全部"></u-checkbox>
-						</u-checkbox-group>
-					</view>
-					<view class="sc" @click="deleteShow = true">
-						<uni-icons type="trash" color=" #ffffff" size="20"></uni-icons>
-						<view class="">删除</view>
-					</view>
-				</view>
-				<view class="guanLi2" @click="guanLiShow = !guanLiShow">
-					<view class="left_jl">
-						<uni-icons type="gear" size="20"></uni-icons>
-					</view>
-					<view class="left_jl">{{ guanLiShow ? '退出管理' : '管理' }}</view>
 				</view>
 			</view>
 		</view>
+
 		<!-- 删除弹层 -->
 		<u-popup :show="deleteShow" @close="close" mode="center" customStyle="width:600rpx;padding: 30rpx;" round="20rpx">
 			<view style="text-align: center">确认是否删除所选内容?</view>
 			<view class="bt_box">
 				<view class="bt1" @click="deleteShow = false">取消</view>
-				<view class="bt2">删除</view>
+				<view @click="deleteBtn" class="bt2">删除</view>
 			</view>
 		</u-popup>
 	</view>
 </template>
 
 <script>
+import { guid } from '@/uni_modules/uv-ui-tools/libs/function/index.js';
+let that;
 export default {
 	data() {
 		return {
 			id1: 0,
-			deleteShow: false,
-			guanLiShow: false,
+			main_body_id: '',
+			deleteShow: false /* 弹层 */,
+			checkboxShow: false /*多选框  */,
 			tabImg: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/tab.png',
 			listTab: [
 				{
@@ -146,77 +129,156 @@ export default {
 					tabid: 3
 				}
 			],
-			list: [
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy1.png',
-					title: '传统捏泥人',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy2.png',
-					title: '青龙宫',
-					desc: '描述描述描述描述描述描述描述描述1'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy3.png',
-					title: '火把节',
-					desc: '11'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy9.png',
-					title: '老物件',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy4.png',
-					title: '林后青龙宫',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy10.png',
-					title: '书籍',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy9.png',
-					title: '老物件',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy4.png',
-					title: '林后青龙宫',
-					desc: '描述描述描述描述描述描述描述描述2'
-				},
-				{
-					image: 'https://huli-app.wenlvti.net/app_static/minnanhun/image/mn_jy10.png',
-					title: '书籍',
-					desc: '描述描述描述描述描述描述描述描述2'
-				}
-			],
-			checkboxValue1: [],
-			// 基本案列数据
-			checkboxList1: [
-				{
-					disabled: false
-				}
-			]
+			list: [],
+			list1: [], // 瀑布流第一列数据
+			list2: [], // 瀑布流第二列数据
+			columnGap: 10,
+
+			checkboxValue2: [],
+			deleteList: [] /*, 要删除的 */,
+			n: [],
+			ad: []
 		};
 	},
 	onLoad(o) {
+		that = this;
 		this.id1 = o.id;
+		this.main_body_id = this.$db.get('main_body_id');
+		this.getUserLike(this.id1);
+	},
+	computed: {
+		imageStyle(item) {
+			return (item) => {
+				const v = uni.upx2px(750) - this.leftGap - this.rightGap - this.columnGap;
+				const w = v / 2;
+				const rate = w / item.w;
+				const h = rate * item.h;
+				return {
+					width: w + 'px',
+					height: h + 'px'
+				};
+			};
+		}
 	},
 	methods: {
+		deleteAll(a) {
+			if (a.length > 0) {
+				let aa = [];
+				this.list.forEach((item, index) => {
+					aa.push(item.id);
+				});
+				this.deleteList = aa;
+			} else {
+				this.deleteList = [];
+			}
+		},
+		// 导航
 		TabBtn(index) {
-			// console.log(index);
+			that.list = [];
+			that.$refs.waterfall.clear();
+			that.list1 = [];
+			that.list2 = [];
 			this.id1 = index.index;
+			this.getUserLike(index.index);
+		},
+		getUserLike(i) {
+			if (i == 2) {
+				// 我得喜欢
+				this.$api.getUserLike(
+					{
+						main_body_id: this.main_body_id
+					},
+					function (res) {
+						// // 假设res.data是一个包含对象的数组
+						res.data.forEach((item) => {
+							item.checked = false;
+						});
+
+						that.list = res.data;
+						// console.log(that.list, '555555555555');
+					}
+				);
+			}
+
+			if (i == 1) {
+				this.$api.getUserCollect(
+					{
+						main_body_id: this.main_body_id
+					},
+					function (res) {
+						console.log('收藏', res);
+						that.list = res.data;
+					}
+				);
+			} else {
+				that.list = [];
+			}
+		},
+		changeList(e) {
+			// console.log(e, '瀑布流');
+			this[e.name].push(e.value);
+		},
+		ceshi(i) {
+			console.log(i, 111111111111);
 		},
-		checkboxChange(n, index) {
-			// console.log(index, 'index');
+		// 选框
+
+		checkboxChange(n) {
+			console.log('change', n);
+			this.deleteList = [...this.deleteList, ...n];
+		},
+		checkboxChange2(n) {
 			console.log('change', n);
+			this.deleteList = [...this.deleteList, ...n];
 		},
-		itemBtn(i) {
-			// console.log(i, 'i');
+		// 删除
+		deleteBtn() {
+			//取消点赞
+			if (this.id1 == 2) {
+				this.$api.unLike(
+					{
+						main_body_id: this.main_body_id,
+						content_ids: this.deleteList
+					},
+					function (res) {
+						if (res.code == 1) {
+							that.$common.successToShow('删除成功');
+							that.deleteShow = false;
+							that.list = [];
+							that.$refs.waterfall.clear();
+							that.list1 = [];
+							that.list2 = [];
+							that.getUserLike(2);
+						} else {
+							that.$common.errorToShow('请选择要删除的内容');
+						}
+					}
+				);
+			}
+			// 取消收藏
+			if (this.id1 == 1) {
+				this.$api.uncollect(
+					{
+						main_body_id: this.main_body_id,
+						content_ids: this.deleteList
+					},
+					function (res) {
+						if (res.code == 1) {
+							that.$common.successToShow('删除成功');
+							that.deleteShow = false;
+							that.list = [];
+							that.$refs.waterfall.clear();
+							that.list1 = [];
+							that.list2 = [];
+							that.getUserLike(1);
+						} else {
+							that.$common.errorToShow('删除失败请稍后在试');
+						}
+					}
+				);
+			}
 		},
+
 		close() {
 			this.deleteShow = false;
 		}
@@ -234,14 +296,40 @@ export default {
 /deep/.u-tabs__wrapper__nav__item.data-v-48634e29 {
 	align-items: end !important;
 }
+.box_checkbox {
+	position: absolute;
+	top: -50rpx;
+	left: 20rpx;
+	z-index: 99;
+}
 .box {
 	height: auto;
 	width: 100%;
+	padding-bottom: 80rpx;
 	background-color: #f8f8f8;
 }
 .box_tab {
 	margin: 45rpx 32rpx 0 32rpx;
 }
+.waterfall-item {
+	margin-bottom: 20rpx;
+}
+.waterfall-item__ft {
+	position: relative;
+}
+.waterfall-item__ft__title {
+	width: 100%;
+	height: 65rpx;
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	line-height: 65rpx;
+	background-color: #ca5642;
+	font-size: 30rpx;
+	text-align: center;
+	color: #ffffff;
+	border-radius: 0 0 10rpx 10rpx;
+}
 .pubu {
 	margin: 10rpx 32rpx 0 32rpx;
 }
@@ -266,10 +354,11 @@ export default {
 .guanLi {
 	display: flex;
 	justify-content: flex-end;
-	position: sticky;
+	position: fixed;
 	bottom: 0;
 	left: 0;
 	z-index: 99;
+	width: 96%;
 	background: #ffffff;
 }
 .guanLi2 {