diff --git a/.drone.yml b/.drone.yml
index 406b920..f15bae8 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -17,35 +17,36 @@ volumes:
path: /var/lib/data
steps:
- - name: restore-cache
- image: drillster/drone-volume-cache
- volumes:
- - name: cache
- path: /cache
- settings:
- restore: true
- mount:
- - ./node_modules
+ # - name: restore-cache
+ # image: drillster/drone-volume-cache
+ # volumes:
+ # - name: cache
+ # path: /cache
+ # settings:
+ # restore: true
+ # mount:
+ # - ./node_modules
- name: build
image: node:latest
pull: if-not-exists # default always
- volumes:
- - name: cache
- path: /root/.m2
+ # volumes:
+ # - name: cache
+ # path: /root/.m2
commands:
+ - npm config set registry http://registry.npm.taobao.org
- npm i
- - npm run build:dev
+ - npm run test
- - name: rebuild-cache
- image: drillster/drone-volume-cache
- volumes:
- - name: cache
- path: /cache
- settings:
- rebuild: true
- mount:
- - ./node_modules
+ # - name: rebuild-cache
+ # image: drillster/drone-volume-cache
+ # volumes:
+ # - name: cache
+ # path: /cache
+ # settings:
+ # rebuild: true
+ # mount:
+ # - ./node_modules
- name: deploy-scp
image: appleboy/drone-scp
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fd7fe26..44d6c91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
- | vue3 | [12ed2ad](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/12ed2ad)
- | 使用uview完成api请求 | [1b3efd8](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/1b3efd8)
- | 手机号登录 | [565585b](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/565585b)
+ - | 插件面板分开显示 | [fb5e86b](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/fb5e86b)
- | 日历页添加 | [1b46a91](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/1b46a91)
- | 日历页首页 | [561c8e6](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/561c8e6)
- | 时间轴展示 | [8b1b380](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/8b1b380)
diff --git a/apis/tall.js b/apis/tall.js
index fcb1872..d692b56 100644
--- a/apis/tall.js
+++ b/apis/tall.js
@@ -2,6 +2,7 @@ import Config from '@/common/js/config.js'
const apiUrl = Config.apiUrl;
const tall = `${apiUrl}/tall3/v3.0`;
+const tall1 = `http://101.201.226.163/gateway/ptos`;
export function setupTall(app) {
uni.$u.api = { ...uni.$u.api } || {};
diff --git a/hooks/user/userMixin.js b/hooks/user/userMixin.js
index a5b4a0c..0691e14 100644
--- a/hooks/user/userMixin.js
+++ b/hooks/user/userMixin.js
@@ -82,14 +82,19 @@ export default function userMixin() {
],
};
const smsCode = ref(null); // 短信验证码
- const showInterval = ref(false);
- const interval = ref(120);
+ // const showInterval = ref(false);
+ // const interval = ref(120);
const codeTimer = ref(null);
- const showPaste = ref(false);
+ // const showPaste = ref(false);
+ const dataObj = reactive({
+ showInterval: false,
+ interval: 120,
+ showPaste: false
+ })
//有图片验证码的值
function hasvalue(form) {
- if(form.smsCode || form.showPaste) return
+ if(form.smsCode || dataObj.showPaste) return
if (!verifyPhone(form.phone)) {
uni.$ui.showToast('请输入正确的手机号');
return;
@@ -98,24 +103,24 @@ export default function userMixin() {
uni.$ui.showToast('请输入图形验证码');
return;
}
- getCode();
+ getCode(form);
}
// 获取验证码
- async function getCode() {
+ async function getCode(form) {
try {
- if (!verificationCodeId.value || !form.verificationCodeValue) {
- showToast('缺少图形验证码参数');
+ if (!form.verificationCodeId || !form.verificationCodeValue) {
+ uni.$ui.showToast('缺少图形验证码参数');
return;
}
const params = {
phone: form.phone,
- verificationCodeId: verificationCodeId.value,
+ verificationCodeId: form.verificationCodeId,
verificationCodeValue: form.verificationCodeValue,
};
const date = await store.dispatch('user/sendCode', params);
getCodeInterval();
- showPaste.value = true;
+ dataObj.showPaste = true;
} catch (err) {
throw err;
}
@@ -123,16 +128,16 @@ export default function userMixin() {
// 获取验证码倒计时
function getCodeInterval() {
- showInterval.value = true;
+ dataObj.showInterval = true;
codeTimer.value = setInterval(() => {
- if (interval.value === 0) {
+ if (dataObj.interval === 0) {
clearInterval(codeTimer.value);
codeTimer.value = null;
- showInterval.value = false;
- interval.value = 120;
+ dataObj.showInterval = false;
+ dataObj.interval = 120;
return;
}
- interval.value = interval.value - 1;
+ dataObj.interval = dataObj.interval - 1;
}, 1000);
}
@@ -213,9 +218,10 @@ export default function userMixin() {
return {
rules,
- showPaste,
- showInterval,
- interval,
+ // showPaste,
+ // showInterval,
+ // interval,
+ dataObj,
hasvalue,
checkRules,
setCode,
diff --git a/manifest.json b/manifest.json
index 5dc57cd..2c13e4f 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,6 +1,6 @@
{
- "name" : "tall-4-project",
- "appid" : "__UNI__1EC8558",
+ "name" : "时物链条",
+ "appid" : "__UNI__3CBCFFF",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
@@ -43,7 +43,41 @@
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
- "sdkConfigs" : {}
+ "sdkConfigs" : {
+ "ad" : {}
+ },
+ "icons" : {
+ "android" : {
+ "hdpi" : "unpackage/res/icons/72x72.png",
+ "xhdpi" : "unpackage/res/icons/96x96.png",
+ "xxhdpi" : "unpackage/res/icons/144x144.png",
+ "xxxhdpi" : "unpackage/res/icons/192x192.png"
+ },
+ "ios" : {
+ "appstore" : "unpackage/res/icons/1024x1024.png",
+ "ipad" : {
+ "app" : "unpackage/res/icons/76x76.png",
+ "app@2x" : "unpackage/res/icons/152x152.png",
+ "notification" : "unpackage/res/icons/20x20.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "proapp@2x" : "unpackage/res/icons/167x167.png",
+ "settings" : "unpackage/res/icons/29x29.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "spotlight" : "unpackage/res/icons/40x40.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png"
+ },
+ "iphone" : {
+ "app@2x" : "unpackage/res/icons/120x120.png",
+ "app@3x" : "unpackage/res/icons/180x180.png",
+ "notification@2x" : "unpackage/res/icons/40x40.png",
+ "notification@3x" : "unpackage/res/icons/60x60.png",
+ "settings@2x" : "unpackage/res/icons/58x58.png",
+ "settings@3x" : "unpackage/res/icons/87x87.png",
+ "spotlight@2x" : "unpackage/res/icons/80x80.png",
+ "spotlight@3x" : "unpackage/res/icons/120x120.png"
+ }
+ }
+ }
}
},
/* 快应用特有相关 */
diff --git a/pages/user/login.vue b/pages/user/login.vue
index 2f375cc..1b2541a 100644
--- a/pages/user/login.vue
+++ b/pages/user/login.vue
@@ -11,9 +11,9 @@
-
- 粘贴
- {{ mixinInit.interval }}
+
+ 粘贴
+ {{ mixinInit.dataObj.interval }}
@@ -52,13 +52,11 @@
const form = reactive({
phone: '',
- verificationCodeValue: '',
+ verificationCodeId: '', // 图形验证码id
+ verificationCodeValue: '', // 图形验证码值
smsCode: ''
});
const imageBase64 = ref(null); // 图形验证码图片
- const verificationCodeId = ref(null); // 图形验证码id
- const data = {};
- const treeId = ref(null);
getImageCode();
@@ -80,7 +78,7 @@
try {
const data = await uni.$u.api.getImageCode();
imageBase64.value = data.imageBase64 || '';
- verificationCodeId.value = data.verificationCodeId || '';
+ form.verificationCodeId = data.verificationCodeId || '';
uni.$ui.hideLoading();
} catch (error) {
uni.$ui.hideLoading();
diff --git a/pages/user/mixin.js b/pages/user/mixin.js
deleted file mode 100644
index b8420f2..0000000
--- a/pages/user/mixin.js
+++ /dev/null
@@ -1,266 +0,0 @@
-import { ref, computed } from 'vue';
-import { useStore } from 'vuex';
-import clipboard from "@/common/js/dc-clipboard/clipboard.js"
-
-export default function mixinInit {
- const store = useStore();
- const user = computed(() => store.state.user.user);
- const rules = ref({
- phone: [
- {
- required: true,
- message: '请输入手机号',
- trigger: ['change','blur'],
- },
- {
- validator: (rule, value, callback) => {
- // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
- return this.$u.test.mobile(value);
- },
- message: '手机号码不正确',
- // 触发器可以同时用blur和change,二者之间用英文逗号隔开
- trigger: ['change','blur'],
- }
- ],
- verificationCodeValue: [
- {
- required: true,
- message: '请输入图形验证码',
- trigger: ['change','blur'],
- },
- {
- type: 'number',
- message: '图形验证码只能为数字',
- trigger: ['change','blur'],
- }
- ],
- smsCode: [
- {
- required: true,
- message: '请输入验证码',
- trigger: ['change','blur'],
- },
- {
- type: 'number',
- message: '验证码只能为数字',
- trigger: ['change','blur'],
- }
- ],
- account: [
- {
- required: true,
- message: '请输入用户名',
- trigger: ['change','blur'],
- },
- {
- min: 2,
- max: 20,
- message: '用户名长度在2到20个字符',
- trigger: ['change','blur'],
- },
- {
- pattern: /^[a-zA-Z0-9._-]{2,20}$/,
- message: '请输入2-20位字母、数字、汉字或字符"_ - ."',
- trigger: ['change','blur'],
- }
- ],
- password: [
- {
- required: true,
- message: '请输入密码',
- trigger: ['change','blur'],
- },
- {
- min: 6,
- max: 20,
- message: '密码长度在6到20个字符',
- trigger: ['change','blur'],
- },
- {
- // 正则不能含有两边的引号
- pattern: /^[a-zA-Z0-9._-]{6,20}$/,
- message: '请输入6-20位字母、数字、汉字或字符"_ - ."',
- trigger: ['change','blur'],
- }
- ],
- });
- const errorType = ref(['message']);
- const labelPosition = ref('left');
- const border = ref(false);
- const smsCode = ref(''); // 短信验证码
- const showInterval = ref(false);
- const interval = ref(120);
- const codeTimer = ref(null);
- const showPaste = ref(false);
-
- return {
- errorType,
- // getImageCode,
- // hasvalue,
- // getCode,
- // getCodeInterval,
- // checkRules,
- // setCode,
- // getClipboardContents,
- // verifyPhone,
- // verifyLoginname,
- // handleWxLogin
- }
-}
-
-
-// const mixin = {
- // computed: mapState('user', ['user']),
-
- // onReady() {
- // this.$refs.uForm.setRules(this.rules);
- // },
-
- // methods: {
- // ...mapActions('user', ['sendCode']),
-
- // 获取图形验证码
- // async getImageCode() {
- // this.$util.showLoading();
- // try {
- // const data = await uni.$u.api.getImageCode();
- // const { imageBase64, verificationCodeId } = data;
- // this.imageBase64 = imageBase64 || '';
- // this.verificationCodeId = verificationCodeId || '';
- // uni.hideLoading();
- // } catch (error) {
- // uni.hideLoading();
- // uni.$ui.showToast(error);
- // }
- // },
-
- // //有图片验证码的值
- // hasvalue() {
- // if(this.model.smsCode || this.model.showPaste) return
- // if (!this.verifyPhone(this.model.phone)) {
- // uni.$ui.showToast('请输入正确的手机号');
- // return;
- // }
- // if (!this.model.verificationCodeValue) {
- // uni.$ui.showToast('请输入图形验证码');
- // return;
- // }
- // this.getCode();
- // },
-
- // // 获取验证码
- // async getCode() {
- // try {
- // const { phone, verificationCodeValue } = this.model;
- // const { verificationCodeId } = this;
-
- // if (!verificationCodeId || !verificationCodeValue) {
- // uni.$ui.showToast('缺少图形验证码参数');
- // return;
- // }
- // const params = {
- // phone,
- // verificationCodeId,
- // verificationCodeValue,
- // };
- // const date = await store.dispatch('user/sendCode', params);
- // getCodeInterval();
- // showPaste.value = true;
- // } catch (err) {
- // throw err;
- // }
- // },
-
- // // 获取验证码倒计时
- // getCodeInterval() {
- // this.showInterval = true;
- // this.codeTimer = setInterval(() => {
- // if (this.interval === 0) {
- // clearInterval(this.codeTimer);
- // this.codeTimer = null;
- // this.showInterval = false;
- // this.interval = 120;
- // return;
- // }
- // this.interval = this.interval - 1;
- // }, 1000);
- // },
-
- // // 验证信息
- // checkRules() {
- // // const { smsCode, phone, user } = this;
- // if (!this.verifyPhone(phone.value)) {
- // uni.$ui.showToast('请输入正确的手机号');
- // return false;
- // }
- // if (!smsCode.value) {
- // uni.$ui.showToast('验证码无效');
- // return false;
- // }
-
- // if (phone.value === user.value.phone) {
- // uni.$ui.showToast('新手机号不能与旧手机号相同');
- // return;
- // }
- // return true;
- // },
-
- // // 粘贴
- // setCode() {
- // // 获取粘贴板内容
- // // 小程序平台
- // //#ifdef MP-WEIXIN
- // var _this = this
- // uni.getClipboardData({
- // success (res) {
- // _this.smsCode = res.data;
- // }
- // });
- // //#endif
-
- // // 非小程序平台
- // //#ifndef MP-WEIXIN
- // this.getClipboardContents()
- // //#endif
- // },
-
- // // 非小程序平台粘贴
- // async getClipboardContents() {
- // try {
- // const text = await navigator.clipboard.readText();
- // this.smsCode = text;
- // } catch (err) {
- // console.error('Failed to read clipboard contents: ', err);
- // }
- // },
-
- // /**
- // * 验证手机号格式
- // * @param {string} phone 手机号
- // */
- // verifyPhone(phone) {
- // const phoneExg = /^1\d{10}$/;
- // return phoneExg.test(phone);
- // },
-
- // /**
- // * 验证账号/密码 格式
- // * @param {string} account 账号
- // */
- // verifyLoginname(account) {
- // const accountExg = /^[a-zA-Z0-9._-]{2,20}$/;
- // return accountExg.test(account);
- // },
-
- // // 微信登录
- // handleWxLogin() {
- // const origin = 'https://test.tall.wiki/pt-mui'; // 测试
- // const appid = 'wxd1842e073e0e6d91';
- // const state = 'wx_web';
- // const href = 'https://open.weixin.qq.com/connect/qrconnect';
- // // eslint-disable-next-line
- // window.location.href =
- // `${href}?appid=${appid}&redirect_uri=${origin}&response_type=code&scope=snsapi_login&state=${state}#wechat_redirect`;
- // },
- // // }
-// };
diff --git a/plugins/p-deliver-check/p-deliver-check.vue b/plugins/p-deliver-check/p-deliver-check.vue
index 4a1f647..5837304 100644
--- a/plugins/p-deliver-check/p-deliver-check.vue
+++ b/plugins/p-deliver-check/p-deliver-check.vue
@@ -19,7 +19,7 @@