Browse Source

添加接口处理页面

wzz 4 years ago
parent
commit
99d8b8a428
9 changed files with 704 additions and 137 deletions
  1. 4 3
      App.vue
  2. 63 12
      main.js
  3. 28 91
      pages/index/index.vue
  4. 182 17
      pages/index/record/record.vue
  5. 352 14
      pages/index/upload/upload.vue
  6. 75 0
      project.config.json
  7. BIN
      static/auth-icon.png
  8. BIN
      static/del.png
  9. BIN
      static/photo.png

+ 4 - 3
App.vue

@@ -2,7 +2,7 @@
 import md5 from '@/common/md5.js';
 export default {
   globalData: {
-    //shareUrl: "https://kiq.xazhima.com/",
+    shareUrl: "https://kiq.xazhima.com/",
 	//shareUrl:"https://kgwxxcx.xixianxinqu.gov.cn/1026airqt/",
     globalTimestamp: Date.now().toString(),
     secret: "AirQK_weichat_app_zhima",
@@ -35,7 +35,7 @@ export default {
 	//        console.log('运行在开发者工具上')
 	//        break;
 	// }
-	//this.loginLoad();
+	this.loginLoad();
   },
   onShow: function () {
     console.log("App Show");
@@ -49,7 +49,8 @@ export default {
 	  	let that = this;
 	  	uni.login({
 	  		success(res) {
-	  			that.loginRequest(res.code)
+				console.log(res)
+	  		//	that.loginRequest(res.code)
 	  		}
 	  	})
 	  },

+ 63 - 12
main.js

@@ -1,21 +1,72 @@
-import App from './App'
+import App from "./App";
 
 // #ifndef VUE3
-import Vue from 'vue'
-Vue.config.productionTip = false
-App.mpType = 'app'
+import Vue from "vue";
+Vue.config.productionTip = false;
+App.mpType = "app";
 const app = new Vue({
-    ...App
-})
-app.$mount()
+  ...App,
+});
+app.$mount();
 // #endif
 
 // #ifdef VUE3
-import { createSSRApp } from 'vue'
+import {createSSRApp} from "vue";
 export function createApp() {
-  const app = createSSRApp(App)
+  const app = createSSRApp(App);
   return {
-    app
-  }
+    app,
+  };
 }
-// #endif
+// #endif
+
+Vue.filter("globalTime", function (value) {
+  if (value) {
+    const time = new Date(value * 1000);
+    const y = time.getFullYear();
+    const m =
+      time.getMonth() + 1 < 10
+        ? "0" + (time.getMonth() + 1)
+        : time.getMonth() + 1;
+    const d = time.getDate() < 10 ? "0" + time.getDate() : time.getDate();
+    // const h = time.getHours()
+    // const mm = time.getMinutes();
+    // const s = time.getSeconds();
+    return y + "-" + m + "-" + d;
+  } else {
+    return "";
+  }
+});
+
+Vue.filter("globalTimeSecond", function (value) {
+  if (value) {
+    const time = new Date(value * 1000);
+    // const y = time.getFullYear();
+    // const m = (time.getMonth() + 1) < 10 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1);
+    // const d = time.getDate() < 10 ? '0' + time.getDate(): time.getDate();
+    const h = time.getHours() < 10 ? '0' + time.getHours() : time.getHours();
+    const mm = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
+    const s = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds();
+   // return h + ":" + mm + ":" + s;
+   return h + ":" + mm;
+  } else {
+    return "";
+  }
+});
+Vue.filter("nameFilter", function (value) {
+  if (value) {
+	  let start = new Array(value.length).join('*');
+	  let end = value.slice(0,1);
+	  return `${end}${start}`
+  } else {
+    return "";
+  }
+});
+Vue.filter("phoneFilter", function (value) {
+  if (value) {
+	  let reg = /^(.{3}).*(.{4})$/
+	  return value.replace(reg,'$1****$2')
+  } else {
+    return "";
+  }
+});

+ 28 - 91
pages/index/index.vue

@@ -1,14 +1,14 @@
 <template>
   <view class="content">
     <div class="self-inf">
-      <div class="img-name-box">
+     <div class="img-name-box" v-if="isAuth">
         <image :src="userHeadImg" class="heade-img" mode="aspectFill"></image>
         <p class="nickname">{{ userNickName }}</p>
       </div>
-  <!--    <view class="img-name-box" v-if="!isAuth">
+      <view class="img-name-box" v-if="!isAuth">
 		<image src="/static/auth-icon.png" class="heade-img" mode="aspectFill"></image>
-        <button @click="goAuthPage()" class="auth-btn">授权登录</button>
-      </view> -->
+        <button @click="getAuth()" class="auth-btn">授权登录</button>
+      </view>
       <image class="bg-img" :src="swiperBackground" mode="aspectFill"></image>
     </div>
     <div class="options">
@@ -16,7 +16,7 @@
         <div class="img-box">
           <img :src="item.icoin" alt="" class="options-item-img" />
         </div>
-        <div class="options-item-name":class="{ fontGrey: idx == list.length - 1 }">
+        <div class="options-item-name">
           {{ item.name }}
         </div>
       </div>
@@ -31,7 +31,7 @@ export default {
 	},
   data() {
     return {
-      isAuth: true,
+      isAuth: false,
       userHeadImg: "/static/logo.png",
       userNickName: "子众",
       list: [
@@ -47,13 +47,7 @@ export default {
 		  url: "/pages/index/record/record",
 		  isShow:true,
 		 },
-        { 
-		   icoin: "/static/back.png",
-		   name: "退出登录" ,
-		   isShow:true,
-		 }
       ],
-      swiperBackground: "",
     };
   },
   onLoad() {
@@ -67,92 +61,48 @@ export default {
   //  this.getUserInfo();
   },
   methods: {
-    goAuthPage() {
-      uni.navigateTo({
-        url: "../auth/index",
-      });
-    },
+	getAuth() {
+		uni.getUserProfile({
+			desc:'登录',
+			success:(res)=> {
+				// getApp().globalData.user_headUrl = res.userInfo.avatarUrl;
+				// getApp().globalData.user_name = res.userInfo.nickName;
+				this.userHeadImg = res.userInfo.avatarUrl;
+				this.userNickName = res.userInfo.nickName;
+				this.isAuth = true;
+				getApp().globalData.isAuth = true; 
+			},
+			fail:(err)=> {
+				console.log(err)
+				getApp().globalData.isAuth = false;
+				getApp().globalData.globalAuth = false; 
+				this.isAuth = false;
+			}
+		})
+	},
     goDetailFn(index, url) {
       let that = this;
 	  if(!that.isAuth){
 		  uni.showToast({
-		    title: "您还没有登录授权",
+		    title: "您还没有授权",
 		    duration: 2500,
 		    icon: "none",
 		  });
 		  return;
 	  }
       switch (index) {
-        case 0: //我的建议
+        case 0: //内容上传
 			uni.navigateTo({
 			  url,
 			}); 
           break;
-        case 1: //我的报名
+        case 1: //发布记录
 			uni.navigateTo({
 			  url,
 			}); 
           break;
-		 case 2: //退出登录
-			uni.showModal({
-			  title: "确定退出登录吗?",
-			  success(res) {
-				if (res.confirm) {
-				  that.loginOut();
-				} else if (res.cancel) {
-				  console.log("用户点击取消");
-				}
-			  },
-			});
-		   break; 
       }
     },
-    loginOut() {
-      let md5Sign = md5(
-        "method=" +
-          "user" +
-          "&timestamp=" +
-          getApp().globalData.globalTimestamp +
-          "&secret=" +
-          getApp().globalData.secret
-      );
-      let url =
-        getApp().globalData.shareUrl +
-        "api/api.php" +
-        "?method=user&action=logout&timestamp=" +
-        getApp().globalData.globalTimestamp +
-        "&sign=" +
-        md5Sign;
-      uni.request({
-        url: url,
-        method: "POST",
-        header: {
-          "content-type": "application/x-www-form-urlencoded",
-        },
-        data: {
-          openId: getApp().globalData.open_id,
-        },
-        success: (res) => {
-          if (res.data.code === 200) {
-            this.isAuth = false;
-            getApp().globalData.isAuth = false;
-            getApp().globalData.user_headUrl = "";
-            getApp().globalData.user_name = "";
-            getApp().globalData.user_phone = "";
-			this.list[3].isShow = false;
-			//this.$forceUpdate();
-            uni.showToast({
-              title: "退出登录成功",
-              duration: 2500,
-              icon: "none",
-            });
-          }
-        },
-        fail: () => {
-          console.log("连接失败");
-        },
-      });
-    },
     getUserInfo() {
       let md5Sign = md5(
         "method=" +
@@ -180,19 +130,6 @@ export default {
         },
         success: (res) => {
           if (res.data.code === 200) {
-            if (res.data.data.nickname) {
-              this.isAuth = true;
-              this.userHeadImg = res.data.data.headimg;
-              this.userNickName = res.data.data.nickname;
-              getApp().globalData.user_phone = res.data.data.phone;
-			  getApp().globalData.globalAuth  = true;
-			  if(res.data.data.stat_user){
-				  this.list[3].isShow = true;
-			  }
-            } else {
-              this.isAuth = false;
-			  getApp().globalData.globalAuth  = false;
-            }
           }
         },
         fail: () => {

+ 182 - 17
pages/index/record/record.vue

@@ -1,22 +1,187 @@
 <template>
-	<view>
-		发布记录
-	</view>
+  <view class="content">
+    <view class="details" v-for="item in pageList" :key="item.id">
+		<view class="view">
+		  <!-- <span class="label">发布时间:</span> -->
+		  <span style="width: 80%;color: darkgray;">{{ item.publishTime }}</span>
+		</view>
+      <view class="view">
+        <!-- <span class="label">详情:</span> -->
+        <span style="width: 80%;">{{ item.content }}</span>
+      </view>
+      <view class="view">
+        <!-- <span class="label">图片:</span> -->
+        <view class="flex-box">
+          <view v-if="imageList.length == 0">-</view>
+          <image :src="item.url" v-for="item in imageList" :key="item.id" mode="aspectFit" @click="showlarge(item.url)"/>
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
 
+
 <script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
+import md5 from "@/common/md5.js";
+export default {
+  data() {
+    return {
+      id: "",
+      details: "",
+      imageList: [],
+      time: "",
+	  pageList:[
+		  {
+			  id:'1',
+			  content:'从现在起直到21世纪中叶的30年,将有可能成为“人类命运共同体”在世界范围逐步实现的关键阶段。随着“人类命运共同体”在世界范围逐步成为现实,大国关系包含中美关系经过种种曲折,逐步转化到一个相互尊重、平等相待、和平共处、合作共赢的轨道上来,这才是人心所向',
+			  imgList:[],
+			  publishTime:'2021.12.25 14:15:00'
+		  },
+		  {
+			   id:'2',
+			  content:'从现在起直到21世纪中叶的30年,将有可能成为“人类命运共同体”在世界范围逐步实现的关键阶段。随着“人类命运共同体”在世界范围逐步成为现实,大国关系包含中美关系经过种种曲折,逐步转化到一个相互尊重、平等相待、和平共处、合作共赢的轨道上来,这才是人心所向',
+			  imgList:[],
+			  publishTime:'2021.12.26 12:11:00'
+		  },
+		  {
+			  id:'3',
+			  content:'从现在起直到21世纪中叶的30年,将有可能成为“人类命运共同体”在世界范围逐步实现的关键阶段。随着“人类命运共同体”在世界范围逐步成为现实,大国关系包含中美关系经过种种曲折,逐步转化到一个相互尊重、平等相待、和平共处、合作共赢的轨道上来,这才是人心所向',
+			  imgList:[],
+			  publishTime:'2021.12.27 13:35:00'
+		  },
+	  ]
+    };
+  },
+  onLoad() {
+    this.getRecordList();
+  },
+  methods: {
+	showlarge(src){
+		uni.previewImage({
+		  urls: [src],
+		  longPressActions: {
+		    itemList: ["发送给朋友", "保存图片"],
+		    success: function (data) {},
+		    fail: function (err) {
+		      console.log(err.errMsg);
+		    },
+		  },
+		});
+	},
+    getRecordList() {
+      let md5Sign = md5(
+        "method=" +
+          "activity" +
+          "&timestamp=" +
+          getApp().globalData.globalTimestamp +
+          "&secret=" +
+          getApp().globalData.secret
+      );
+      let url =
+        getApp().globalData.shareUrl +
+        "api/api.php" +
+        "?method=activity&action=my_process&timestamp=" +
+        getApp().globalData.globalTimestamp +
+        "&sign=" +
+        md5Sign;
+      let postData = {
+        // id: this.id,
+         openid : "asfsfsffa",
+      };
+      //获取文章
+      uni.request({
+        url: url,
+        method: "POST",
+        header: {
+          "content-type": "application/x-www-form-urlencoded",
+        },
+        data: postData,
+        success: (res) => {
+          console.log(res.data.data);
+          if (res.data.code === 200) {
+            let data = res.data.data;
+            this.details = data.content;
+            this.title = data.title;
+            let time = this.$options.filters["globalTime"](data.addtime);
+            let timeSecond = this.$options.filters["globalTimeSecond"](
+              data.addtime
+            );
+            this.time = time + " " + timeSecond;
+            this.info.name = data.company_name;
+            this.info.code = data.company_code;
+            this.info.tel = data.phone;
+            this.imageList = data.attach_list.map((item) => {
+              item.url = getApp().globalData.shareUrl + item.url;
+              return item;
+            });
+          }
+        },
+        fail: () => {
+          console.log("连接失败");
+        },
+      });
+    },
+  },
+};
 </script>
-
-<style>
-
-</style>
+<style lang="scss" scoped>
+.flex-box {
+  display: flex;
+}
+.view {
+  display: flex;
+}
+.content {
+  font-size: 32rpx;
+  .title {
+    margin: 4% 5%;
+  }
+  .details {
+    font-size: 28rpx;
+    width: 90%;
+    margin: 0 2%;
+    padding: 2% 3%;
+	border-bottom: 1px solid #f2f2f2;
+    // border-radius: 50rpx;
+    // box-shadow: rgba(100, 100, 111, 0.2) 0rpx 14rpx 50rpx 14rpx;
+    image {
+      width: 180rpx;
+      height: 150rpx;
+      border-radius: 30rpx;
+      margin: 0 2%;
+    }
+    .view {
+      margin: 2% 0;
+    }
+    .label {
+      display: inline-block;
+      width:150rpx;
+      vertical-align: middle;
+      margin-right: 10rpx;
+    }
+  }
+  .info {
+    font-size: 28rpx;
+    width: 90%;
+    margin: 4% 2%;
+    padding: 2% 3%;
+    border-radius: 40rpx;
+    box-shadow: rgba(100, 100, 111, 0.2) 0rpx 14rpx 50rpx 14rpx;
+    .title {
+      margin: 4% 0;
+      font-size: 32rpx;
+    }
+    .view {
+      display: flex;
+      align-items: center;
+      margin: 5% 0;
+    }
+    .label {
+      display: inline-block;
+      width: 150rpx;
+      vertical-align: middle;
+      margin-right: 10rpx;
+    }
+  }
+}
+</style>

+ 352 - 14
pages/index/upload/upload.vue

@@ -1,22 +1,360 @@
 <template>
-	<view>
-		内容上传
-	</view>
+  <view class="content">
+    <view class="supplyInfo">
+      <view class="flex">
+        <label>输入文本:</label>
+        <textarea v-model="supplyInfo.msg" class="area card"></textarea>
+      </view>
+      <view class="update_photo">
+        <view class="title"></view>
+        <view>选择图片:</view>
+        <view class="update_container card upload-parent-box">
+          <view class="update_button display-flex">
+            <view class="upload-box" @click="getImage('album')">
+              <view class="img">
+                <image src="/static/photo.png" class="photo"></image>
+              </view>
+              <view class="txt">上传</view>
+            </view>
+            <view
+              class="display-flex upload-box-photo"
+              v-for="(item, index) in uploadList"
+              :key="index"
+            >
+              <image:src="item"mode="aspectFit"  style="width: 100%; height: 100%" @click="showLarge(item)"/>
+              <image src="/static/del.png" class="del-icon"mode="aspectFit" 
+			  style="width: 30rpx; height: 30rpx" @click="delPhoto(index)"></image>
+            </view>
+          </view>
+        </view>
+      </view>
+	  <view class="flex">
+		<label>支部:</label>
+		<input type="text" v-model="supplyInfo.title" class="input card" />
+	  </view>
+	  <view class="flex">
+		<label>姓名:</label>
+		<input type="text" v-model="supplyInfo.name" class="input card" />
+	  </view>
+	 <button class="submit" @tap="submit">提交</button>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			
-		}
-	}
+import md5 from "@/common/md5.js";
+export default {
+  data() {
+    return {
+      supplyInfo: {
+        title: "",
+        msg: "",
+		name:''
+      },
+      uploadList: [],
+      imgIdList: [],
+    };
+  },
+  methods: {
+    submit() {
+      if (
+        this.supplyInfo.name === "" ||
+        this.supplyInfo.title === "" ||
+        this.supplyInfo.msg === ""
+      ) {
+        uni.showToast({
+          title: "内容不完善",
+          icon: "error",
+        });
+        return;
+      }
+
+      let md5Sign = md5(
+        "method=" +
+          "activity" +
+          "&timestamp=" +
+          getApp().globalData.globalTimestamp +
+          "&secret=" +
+          getApp().globalData.secret
+      );
+      let url =
+        getApp().globalData.shareUrl +
+        "api/api.php" +
+        "?method=activity&action=process&timestamp=" +
+        getApp().globalData.globalTimestamp +
+        "&sign=" +
+        md5Sign;
+      let postData = {
+			openid : "asfsfsffa",
+			activity_id : 1 ,  //这里固定是1
+			content : this.supplyInfo.msg,
+			department :this.supplyInfo.title,
+			user_name :  this.supplyInfo.name,
+			attach_ids : ''   //  3,34,5,5,6 
+      };
+      uni.request({
+        url: url,
+        method: "POST",
+        header: {
+          "content-type": "application/x-www-form-urlencoded",
+        },
+        data: postData,
+        success: (res) => {
+          if (res.data.code === 200) {
+            uni.showToast({
+              title: "上传成功",
+              icon: "none",
+              duration: 2000,
+            });
+            // uni.setStorageSync("supply_name", this.company.name);
+            // uni.setStorageSync("supply_code", this.company.code);
+            // uni.setStorageSync("supply_tel", this.company.tel);
+            setTimeout(() => {
+              uni.navigateBack({});
+            }, 1500);
+          } else {
+            uni.showToast({
+              title: res.data.msg,
+              icon: "none",
+              duration: 2500,
+            });
+          }
+        },
+        fail: () => {
+          console.log("连接失败");
+        },
+      });
+    },
+    bindPickerChange(e) {
+      this.index = e.detail.value;
+    },
+    getImage(type) {
+      let that = this;
+      if (that.uploadList.length >= 3) {
+        uni.showToast({
+          title: "最多上传3张图片",
+          icon: "none",
+          duration: 2500,
+        });
+        return;
+      }
+      uni.chooseImage({
+        sourceType: [type],
+        count: 3 - that.uploadList.length,
+        sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
+        success: (res) => {
+          for (let i = 0; i < res.tempFilePaths.length; i++) {
+            that.uploadList.push(res.tempFilePaths[i]);
+            that.uploadFileRequest(res.tempFilePaths[i]);
+          }
+        },
+      });
+    },
+    uploadFileRequest(fileVal) {
+      uni.showLoading({
+        title: "上传中",
+        mask: true,
+      });
+      let that = this;
+      let md5Sign = md5(
+        "method=" +"upload" + "&timestamp=" +
+          getApp().globalData.globalTimestamp +
+          "&secret=" + getApp().globalData.secret
+      );
+      let url =
+        getApp().globalData.shareUrl +
+        "api/upload.php" +
+        "?method=upload&source=activity&id=1&timestamp=" +
+        getApp().globalData.globalTimestamp +
+        "&sign=" +
+        md5Sign;
+      uni.uploadFile({
+        url: url, //需要设置为全局
+        filePath: fileVal,
+        name: "file",
+        formData: {
+          file: fileVal,
+        },
+        success: (res) => {
+          let tmpres = JSON.parse(res.data);
+          console.log(tmpres);
+          uni.hideLoading();
+          that.imgIdList.push(tmpres.data.id);
+        },
+        fail: (res) => {
+          console.log("上传请求失败");
+          console.log(res);
+        },
+      });
+    },
+    delPhoto(idx) {
+      this.uploadList.splice(idx, 1);
+      this.imgIdList.splice(idx, 1);
+    },
+    showLarge(src) {
+      uni.previewImage({
+        urls: [src],
+        longPressActions: {
+          itemList: ["发送给朋友", "保存图片"],
+          success: function (data) {},
+          fail: function (err) {
+            console.log(err.errMsg);
+          },
+        },
+      });
+    },
+  },
+};
 </script>
 
-<style>
+<style lang="scss" scoped>
+.upload-parent-box {
+  height: 150rpx;
+  padding-top: 25rpx;
+  padding-left: 20rpx;
+}
+.upload-box {
+  display: flex;
+  flex-flow: column;
+  width: 25%;
+  background-color: #e0e0e0;
+  height: 140rpx;
+  border-radius: 10rpx;
+  padding-top: 15rpx;
+  image {
+    width: 60rpx !important;
+    height: 60rpx !important;
+  }
+}
+.upload-box-photo {
+  width: 25%;
+  height: 110rpx;
+  border-radius: 10rpx;
+  padding-top: 15rpx;
+  position: relative;
+}
+.del-icon {
+  position: absolute;
+  right: 0;
+  width: 30rpx;
+  height: 30rpx;
+}
 
+.update_button {
+  text-align: center;
+  display: flex;
+}
+.content {
+  font-size: 28rpx;
+  font-weight: 200;
+  padding: 1% 2%;
+  .title {
+    font-size: 30rpx;
+    margin: 4% 0;
+  }
+  label {
+    display: inline-block;
+    width: 25%;
+    vertical-align: middle;
+  }
+  .card {
+    background-color: rgb(248, 247, 247);
+    border-radius: 10rpx;
+  }
+  .flex {
+    display: flex;
+    align-items: center;
+    margin-bottom: 2%;
+  }
+  .input {
+    padding: 0 2%;
+    margin: 2% 0;
+    display: inline-block;
+    width: 80%;
+    height: 70rpx;
+  }
+  .supplyInfo {
+    // border-radius: 40rpx;
+    padding: 4%;
+    box-shadow: rgba(100, 100, 111, 0.2) 14rpx 14rpx 40rpx 14rpx;
+	margin: 30rpx 0 30rpx 0;
+    .area {
+      height: 200rpx;
+      padding: 20rpx;
+      box-sizing: border-box;
+    }
+    .picker {
+      width: 80%;
+      height: 70rpx;
+      background: rgb(248, 247, 247);
+      display: flex;
+      align-items: center;
+      position: relative;
+      .pick {
+        width: 100%;
+      }
+      .picker_title {
+        display: flex;
+        width: 100%;
+        margin-left: 30rpx;
+        align-items: center;
+        justify-content: space-between;
+        .triangle-down {
+          width: 0;
+          height: 0;
+          border-top: 15rpx solid rgb(173, 173, 173);
+          border-left: 15rpx solid transparent;
+          border-right: 15rpx solid transparent;
+          position: absolute;
+          right: 10rpx;
+        }
+        .pickername {
+          font-weight: 100;
+        }
+      }
+    }
+    .upload-box {
+      width: 25%;
+      background-color: #e0e0e0;
+      height: 110rpx;
+      border-radius: 10rpx;
+      padding-top: 15rpx;
+    }
+    .upload-box-photo {
+      width: 25%;
+      height: 110rpx;
+      border-radius: 10rpx;
+      padding-top: 15rpx;
+      position: relative;
+    }
+    .del-icon {
+      position: absolute;
+      right: 0;
+      width: 30rpx;
+      height: 30rpx;
+    }
+    image {
+      width: 60rpx;
+      height: 60rpx;
+    }
+    .update_button {
+      text-align: center;
+      display: flex;
+    }
+  }
+  .info {
+    margin-top: 2%;
+    border-radius: 40rpx;
+    padding: 2% 4%;
+    box-shadow: rgba(100, 100, 111, 0.2) 14rpx 14rpx 40rpx 14rpx;
+  }
+  .submit {
+    color: white;
+    font-weight: normal;
+    width: 70%;
+    border-radius: 20rpx;
+    background-color: #02a7f0;
+    margin: 50rpx auto;
+  }
+}
 </style>

+ 75 - 0
project.config.json

@@ -0,0 +1,75 @@
+{
+  "description": "项目配置文件",
+  "packOptions": {
+    "ignore": []
+  },
+  "setting": {
+    "urlCheck": true,
+    "es6": true,
+    "enhance": false,
+    "postcss": true,
+    "preloadBackgroundData": false,
+    "minified": true,
+    "newFeature": false,
+    "coverView": true,
+    "nodeModules": false,
+    "autoAudits": false,
+    "showShadowRootInWxmlPanel": true,
+    "scopeDataCheck": false,
+    "uglifyFileName": false,
+    "checkInvalidKey": true,
+    "checkSiteMap": true,
+    "uploadWithSourceMap": true,
+    "compileHotReLoad": false,
+    "useMultiFrameRuntime": true,
+    "useApiHook": true,
+    "useApiHostProcess": true,
+    "babelSetting": {
+      "ignore": [],
+      "disablePlugins": [],
+      "outputPath": ""
+    },
+    "enableEngineNative": false,
+    "bundle": false,
+    "useIsolateContext": true,
+    "useCompilerModule": true,
+    "userConfirmedUseCompilerModuleSwitch": false,
+    "userConfirmedBundleSwitch": false,
+    "packNpmManually": false,
+    "packNpmRelationList": [],
+    "minifyWXSS": true
+  },
+  "compileType": "miniprogram",
+  "libVersion": "2.21.2",
+  "appid": "wx2569b38ed6740a97",
+  "projectname": "ng-notes",
+  "debugOptions": {
+    "hidedInDevtools": []
+  },
+  "scripts": {},
+  "staticServerOptions": {
+    "baseURL": "",
+    "servePath": ""
+  },
+  "isGameTourist": false,
+  "condition": {
+    "search": {
+      "list": []
+    },
+    "conversation": {
+      "list": []
+    },
+    "game": {
+      "list": []
+    },
+    "plugin": {
+      "list": []
+    },
+    "gamePlugin": {
+      "list": []
+    },
+    "miniprogram": {
+      "list": []
+    }
+  }
+}

BIN
static/auth-icon.png


BIN
static/del.png


BIN
static/photo.png