diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..78a752d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+yarn.lock
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..81f13f4
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..8c2b732
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,17 @@
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..bf3085a
--- /dev/null
+++ b/main.js
@@ -0,0 +1,33 @@
+import App from './App'
+
+import uView from 'uview-ui'
+import {
+ apiService,
+ toast
+} from "./service/request.js"
+Vue.use(uView)
+
+Vue.prototype.$api = apiService
+Vue.prototype.$toast = toast
+
+// #ifndef VUE3
+import Vue from 'vue'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import {
+ createSSRApp
+} from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..066ca83
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,72 @@
+{
+ "name" : "city-store-transfer",
+ "appid" : "__UNI__F3EA0D6",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "2"
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..49fd105
--- /dev/null
+++ b/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "uview-ui": "^2.0.36"
+ }
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..9ff96c3
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,58 @@
+{
+ "easycom": {
+ "autoscan": true, //是否自动扫描组件
+ "custom": {
+ "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue",
+ "^ua-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue",
+ "^customer-(.*)": "@/components/uni-$1.vue" // 匹配components目录内的vue文件
+ }
+ },
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "uni-app",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#12CA64",
+ //导航栏取消
+ // "navigationStyle": "custom",
+ //是否开启下拉刷新
+ "enablePullDownRefresh": true
+ }
+ }, {
+ "path": "pages/my/my",
+ "style": {
+ "navigationBarTitleText": "",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#12CA64",
+ "enablePullDownRefresh": false
+ }
+ }
+ ],
+ "tabBar": {
+ "color": "#CCCCCC",
+ "selectedColor": "#0EBB5B",
+ "borderStyle": "white",
+ "backgroundColor": "#FFFFFF",
+ "list": [{
+ "pagePath": "pages/index/index",
+ "text": "首页",
+ "iconPath": "static/tabbar/sy_icon_syh.png",
+ "selectedIconPath": "static/tabbar/sy_icon_sy(1).png"
+ },
+ {
+ "pagePath": "pages/my/my",
+ "text": "我的",
+ "iconPath": "static/tabbar/sy_icon_wdh.png",
+ "selectedIconPath": "static/tabbar/sy_icon_wd.png"
+ }
+ ]
+ },
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "uni-app",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..deee3c1
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/my/my.vue b/pages/my/my.vue
new file mode 100644
index 0000000..44c5cd0
--- /dev/null
+++ b/pages/my/my.vue
@@ -0,0 +1,29 @@
+
+
+ 我的
+
+
+
+
+
+
\ No newline at end of file
diff --git a/service/request.js b/service/request.js
new file mode 100644
index 0000000..a50f3c3
--- /dev/null
+++ b/service/request.js
@@ -0,0 +1,181 @@
+const serverHost = ''//http://xx.xxx.xx
+
+const service = {
+ get(url, data) {
+ const header = {}
+ header['token'] = uni.getStorageSync('loginToken')
+ header['content-type'] = 'application/json'
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: 'get',
+ url: serverHost + url,
+ data: data,
+ header: header,
+ success: res => {
+ resolve(res)
+ },
+ fail: err => {
+ reject(err)
+ }
+ })
+ })
+ },
+ post(url, data) {
+ const header = {}
+ header['token'] = uni.getStorageSync('loginToken')
+ header['content-type'] = 'application/json'
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: 'post',
+ url: serverHost + url,
+ data: data,
+ header: header,
+ success: res => {
+ resolve(res)
+ },
+ fail: err => {
+ try {
+ toast.error(err.data.message)
+ } catch (errr) {
+ toast.error('服务器出错')
+ }
+ reject(err)
+ }
+ })
+ })
+ },
+ put(url, data) {
+ const header = {}
+ header['token'] = uni.getStorageSync('loginToken')
+ header['content-type'] = 'application/json'
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: 'put',
+ url: serverHost + url,
+ data: data,
+ header: header,
+ success: res => {
+ resolve(res)
+ },
+ fail: err => {
+ reject(err)
+ }
+ })
+ })
+ },
+ putWithFormData(url, data) {
+ const header = {}
+ header['token'] = uni.getStorageSync('loginToken')
+ header['content-type'] = 'application/x-www-form-urlencoded'
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: 'put',
+ url: serverHost + url,
+ data: data,
+ header: header,
+ success: res => {
+ resolve(res)
+ },
+ fail: err => {
+ reject(err)
+ }
+ })
+ })
+ },
+ delete(url, data) {
+ const header = {}
+ header['token'] = uni.getStorageSync('loginToken')
+ header['content-type'] = 'application/json'
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: 'delete',
+ url: serverHost + url,
+ data: data,
+ header: header,
+ success: res => {
+ resolve(res)
+ },
+ fail: err => {
+ reject(err)
+ }
+ })
+ })
+ }
+}
+const toastDuration = 1500
+const toast = {
+ success: (text, dur) => {
+ uni.showToast({
+ icon: 'none',
+ title: text || '成功',
+ duration: dur || toastDuration
+ })
+ },
+ warn: text => {
+ uni.showToast({
+ icon: 'none',
+ title: text || '未知警告',
+ duration: toastDuration
+ })
+ },
+ error: text => {
+ uni.showToast({
+ icon: 'none',
+ title: text || '未知错误',
+ duration: toastDuration
+ })
+ }
+}
+const apiService = {
+ serverHost,
+ uploadImgUrl: serverHost + `/upload/image/`,
+ //登录接口
+ login(data) {
+ const url = `/login`
+ return new Promise((resolve, reject) => {
+ resolve(service.post(url, data))
+ })
+ },
+ // 展示用户信息
+ getUserInfo() {
+ const url = '/user'
+ return new Promise((resolve, reject) => {
+ resolve(service.get(url))
+ })
+ },
+ // 获取详情
+ getProductDetail(id) {
+ const url = `/home/pdetail/?productId=${id}`
+ return new Promise((resolve, reject) => {
+ resolve(service.get(url, id))
+ })
+ },
+ //修改
+ updatePlan(data) {
+ const url = '/plan'
+ return new Promise((resolve, reject) => {
+ resolve(service.put(url, data))
+ })
+ },
+ //删除
+ deleteIdeasAndNeeds(id) {
+ const url = `/center/delreq/?id=${id}`
+ return new Promise((resolve, reject) => {
+ resolve(service.delete(url, id))
+ })
+ },
+ // 提交
+ submitIdeasAndNeeds(data) {
+ let url = `/require/release/`
+ if (data.id) {
+ url = `/require/update/`
+ }
+ return new Promise((resolve, reject) => {
+ resolve(service.putWithFormData(url, data))
+ })
+ },
+}
+export {
+ apiService,
+ toast
+}
\ No newline at end of file
diff --git a/static/logo.png b/static/logo.png
new file mode 100644
index 0000000..b5771e2
Binary files /dev/null and b/static/logo.png differ
diff --git a/static/tabbar/sy_icon_sy(1).png b/static/tabbar/sy_icon_sy(1).png
new file mode 100644
index 0000000..764206c
Binary files /dev/null and b/static/tabbar/sy_icon_sy(1).png differ
diff --git a/static/tabbar/sy_icon_syh.png b/static/tabbar/sy_icon_syh.png
new file mode 100644
index 0000000..b29f7c3
Binary files /dev/null and b/static/tabbar/sy_icon_syh.png differ
diff --git a/static/tabbar/sy_icon_wd.png b/static/tabbar/sy_icon_wd.png
new file mode 100644
index 0000000..78ef662
Binary files /dev/null and b/static/tabbar/sy_icon_wd.png differ
diff --git a/static/tabbar/sy_icon_wdh.png b/static/tabbar/sy_icon_wdh.png
new file mode 100644
index 0000000..ff78fc2
Binary files /dev/null and b/static/tabbar/sy_icon_wdh.png differ
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..1c39e72
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+@import 'uview-ui/theme.scss';
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;
diff --git a/新建 文本文档.txt b/新建 文本文档.txt
deleted file mode 100644
index e69de29..0000000