fromdao251109
This commit is contained in:
parent
05ff18700f
commit
b237616d74
|
|
@ -88,6 +88,7 @@
|
|||
}
|
||||
this.title = res.title === undefined ? this.lang('alert.deftitle') : res.title;
|
||||
this.align = res.align || 'center';
|
||||
this.inputtxt = res.value ? res.value : '';
|
||||
this.ele = res.ele;
|
||||
if (res.content && res.content[0] == '<') {
|
||||
this.html = res.content;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view :animation="animationData" class="_refani" v-if="show">
|
||||
<view :animation="animationData" class="_refani" v-if="show" :style="cstyle">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -7,15 +7,23 @@
|
|||
</style>
|
||||
<script>
|
||||
export default {
|
||||
options: {
|
||||
virtualHost: true
|
||||
},
|
||||
props: {
|
||||
ani: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
ciystyle: {
|
||||
type: [String, Object],
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: true,
|
||||
mastyle: {height:'auto'},
|
||||
animationData: {}
|
||||
};
|
||||
},
|
||||
|
|
@ -24,7 +32,15 @@
|
|||
this.Doani(newD);
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
computed: {
|
||||
cstyle() {
|
||||
this.mastyle.overflow = 'hidden';
|
||||
var sty = this.ciystyle;
|
||||
if(typeof(sty) == 'string')
|
||||
sty = this.style2obj(sty, this.mastyle);
|
||||
return sty;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.rect = {};
|
||||
if (this.ani)
|
||||
|
|
@ -43,11 +59,20 @@
|
|||
//matrix,xx3d等,anis[string]未定义,需anis[array]。
|
||||
this.show = true;
|
||||
if (typeof(opn) == 'string') {
|
||||
//ResizeObserver微信小程序不支持
|
||||
if (opn.indexOf('hhauto') > -1) {
|
||||
this.mastyle.height = 'auto';
|
||||
this.mastyle.display = 'block';
|
||||
await this.$nextTick();
|
||||
var rect = await this.getrect('._refani');
|
||||
console.log('rect.height',rect.height,this.rect.height);
|
||||
if (rect.width != 0 && rect.height != 0)
|
||||
this.rect = rect;
|
||||
opn = opn.replace('hhauto', 'hh' + this.rect.height);
|
||||
if(this.rect.height)
|
||||
opn = opn.replace('hhauto', 'hh' + this.rect.height);
|
||||
else
|
||||
opn = opn.replace('hhauto', 'hh0');
|
||||
console.log(opn);
|
||||
}
|
||||
}
|
||||
this._aniing = true;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,93 @@
|
|||
<template>
|
||||
<view class="_refani" v-if="anishow" :style="cstyle">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
<style scoped>
|
||||
</style>
|
||||
<script>
|
||||
export default {
|
||||
options: {
|
||||
virtualHost: true
|
||||
},
|
||||
props: {
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
speedms: {
|
||||
type: [String, Number],
|
||||
default: 500
|
||||
},
|
||||
ciystyle: {
|
||||
type: [String, Object],
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
anishow: false,
|
||||
height: -1
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
show(newD, oldD) {
|
||||
this.Showani(newD);
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
cstyle() {
|
||||
var sty = this.ciystyle;
|
||||
var mastyle = {};
|
||||
mastyle.overflow = 'hidden';
|
||||
if(this.height == -1){
|
||||
mastyle.height = 'auto';
|
||||
if(this.op == 0)
|
||||
mastyle.opacity = 0;
|
||||
}else{
|
||||
mastyle.height = this.height + 'px';
|
||||
mastyle.opacity = 1;
|
||||
}
|
||||
sty = this.style2obj(sty, mastyle);
|
||||
return sty;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.rect = {};
|
||||
if (this.show)
|
||||
this.Showani(this.show);
|
||||
},
|
||||
methods: {
|
||||
async Showani(bshow) {
|
||||
if(this.height == 0)
|
||||
this.op = 0;
|
||||
else
|
||||
this.op = 1;
|
||||
this.height = -1;
|
||||
this.anishow = true;
|
||||
var rect = await this.getrect('._refani');
|
||||
if (rect && rect.height != 0)
|
||||
this.rect = rect;
|
||||
clearInterval(this.anitimeout);
|
||||
//cancelAnimationFrame(this.animationFrameId);
|
||||
if (bshow) {
|
||||
this.animateHeight(0, this.rect.height, this.toint(this.speedms));
|
||||
} else {
|
||||
this.animateHeight(this.rect.height, 0, this.toint(this.speedms));
|
||||
}
|
||||
},
|
||||
animateHeight(startHeight, targetHeight, duration) {
|
||||
this.height = startHeight;
|
||||
const startTime = Date.now();//performance.now();
|
||||
this.anitimeout = setInterval(() => {
|
||||
const elapsed = Date.now() - startTime;
|
||||
const progress = Math.min(elapsed / duration, 1);
|
||||
this.height = startHeight + (targetHeight - startHeight) * progress;
|
||||
if (progress >= 1)
|
||||
clearInterval(this.anitimeout);
|
||||
}, 16);
|
||||
//this.animationFrameId = uni.requestAnimationFrame(step);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -150,7 +150,7 @@
|
|||
}
|
||||
this.goani('ty100vh,op0|ty' + top + 'px,op1,' + totalms, data => this.anidatapop = data);
|
||||
}
|
||||
this.goani('op0|op1,' + totalms, data => this.anidatamask = data);
|
||||
this.goani('op0|op0,100|op1,' + totalms, data => this.anidatamask = data);
|
||||
this.$emit('change', {
|
||||
from: 'open',
|
||||
value: true
|
||||
|
|
|
|||
|
|
@ -215,6 +215,8 @@
|
|||
val = new Date(val * 1000);
|
||||
} else if (val.indexOf('-') > -1 || val.indexOf('/') > -1) {
|
||||
val = this.str2date(val);
|
||||
} else if (val == 'now') {
|
||||
val = new Date();
|
||||
} else {
|
||||
val = this.toint(val);
|
||||
if (val == 0)
|
||||
|
|
@ -234,6 +236,8 @@
|
|||
val = new Date(val * 1000);
|
||||
} else if (val.indexOf('-') > -1 || val.indexOf('/') > -1) {
|
||||
val = new Date(val);
|
||||
} else if (val == 'now') {
|
||||
val = new Date();
|
||||
} else {
|
||||
val = this.toint(val);
|
||||
if (val == 0)
|
||||
|
|
|
|||
|
|
@ -19,8 +19,9 @@
|
|||
<checkbox v-for="(item,index) in tkvs.novals" :key="index" :value="item.id+''" checked />
|
||||
</checkbox-group>
|
||||
</template>
|
||||
<view v-if="innerrang.length==0" :style="{color:'var(--bg6)',textAlign:left?'left':''}">无选项</view>
|
||||
<radio-group class="_gp" :class="{'_line':line,'_left':left,'_itemright':itemright}">
|
||||
<view @tap="chgitem(item)" class="_item" v-for="(item,index) in range" :key="index">
|
||||
<view @tap="chgitem(item)" class="_item" v-for="(item,index) in innerrang" :key="index">
|
||||
<ciy-checkitem style="pointer-events: none;" sq :disabled="disabled" :tag="(byname?item.name:item.id)+''" :value="tkvs.ids.indexOf((byname?item.name:item.id)+'') > -1"></ciy-checkitem>
|
||||
<view :style="{color:disabled?'var(--txt1)':''}">{{item.name}}</view>
|
||||
</view>
|
||||
|
|
@ -32,7 +33,8 @@
|
|||
._gp {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row-reverse;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
._gp._left {
|
||||
|
|
@ -42,6 +44,7 @@
|
|||
._gp ._item {
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5em;
|
||||
padding: 0.5em;
|
||||
min-width: 7em;
|
||||
|
|
@ -89,8 +92,12 @@
|
|||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
chkuse: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
range: {
|
||||
type: Array,
|
||||
type: [String, Array],
|
||||
default: []
|
||||
},
|
||||
moreno: {
|
||||
|
|
@ -124,7 +131,7 @@
|
|||
handler(newD, oldD) {
|
||||
if (this.from && newD.value == oldD.value)
|
||||
return;
|
||||
if (this.range.length == 0)
|
||||
if (this.innerrang.length == 0)
|
||||
return;
|
||||
if (!this.from)
|
||||
this.from = 'init';
|
||||
|
|
@ -159,6 +166,29 @@
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
innerrang() {
|
||||
if (typeof(this.range) == 'string') {
|
||||
const lis = this.range.split(',');
|
||||
var lst = [];
|
||||
for (let i = 0; i < lis.length; i++) {
|
||||
const ls = lis[i].split(':');
|
||||
if (ls.length < 2)
|
||||
continue;
|
||||
lst.push({
|
||||
id: ls[0],
|
||||
name: ls[1]
|
||||
});
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
let range = [];
|
||||
for (let i = 0; i < this.range.length; i++) {
|
||||
if (this.chkuse && this.range[i].isuse == 2)
|
||||
continue;
|
||||
range.push(this.range[i]);
|
||||
}
|
||||
return range;
|
||||
},
|
||||
tkvs() {
|
||||
var val = ''; //id/name数组
|
||||
if (this.v == 'modelValue') {
|
||||
|
|
@ -193,28 +223,28 @@
|
|||
novals: []
|
||||
};
|
||||
if (this.byname) {
|
||||
for (var i in this.range) {
|
||||
if (val.indexOf(this.range[i].name + '') > -1) {
|
||||
kvs.ids.push(this.range[i].name + '');
|
||||
for (var i in this.innerrang) {
|
||||
if (val.indexOf(this.innerrang[i].name + '') > -1) {
|
||||
kvs.ids.push(this.innerrang[i].name + '');
|
||||
kvs.vals.push({
|
||||
...this.range[i]
|
||||
...this.innerrang[i]
|
||||
});
|
||||
} else {
|
||||
kvs.novals.push({
|
||||
...this.range[i]
|
||||
...this.innerrang[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i in this.range) {
|
||||
if (val.indexOf(this.range[i].id + '') > -1) {
|
||||
kvs.ids.push(this.range[i].id + '');
|
||||
for (var i in this.innerrang) {
|
||||
if (val.indexOf(this.innerrang[i].id + '') > -1) {
|
||||
kvs.ids.push(this.innerrang[i].id + '');
|
||||
kvs.vals.push({
|
||||
...this.range[i]
|
||||
...this.innerrang[i]
|
||||
});
|
||||
} else {
|
||||
kvs.novals.push({
|
||||
...this.range[i]
|
||||
...this.innerrang[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<label>
|
||||
<label style="min-width:auto;">
|
||||
<view class="_radio" :class="{_sq:sq,_disabled:disabled}" @tap="clickswitch(!this.tvalue)">
|
||||
<switch :name="name" :checked="tvalue" @change="chg" style="display:none;" />
|
||||
<view class="_bn" :class="{_checked:tvalue}" :animation="anidatabn"></view>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
},
|
||||
maxlength: {
|
||||
type: Number,
|
||||
default: 140
|
||||
default: 180
|
||||
},
|
||||
confirmType: {
|
||||
type: String, // send发送、search搜索、next下一个、go前往、done完成
|
||||
|
|
|
|||
|
|
@ -193,6 +193,8 @@
|
|||
val = new Date(val * 1000);
|
||||
} else if (val.indexOf('-') > -1 || val.indexOf('/') > -1) {
|
||||
val = this.str2date(val);
|
||||
} else if (val == 'now') {
|
||||
val = new Date();
|
||||
} else {
|
||||
val = this.toint(val);
|
||||
if (val == 0)
|
||||
|
|
@ -211,6 +213,8 @@
|
|||
val = new Date(val * 1000);
|
||||
} else if (val.indexOf('-') > -1 || val.indexOf('/') > -1) {
|
||||
val = this.str2date(val);
|
||||
} else if (val == 'now') {
|
||||
val = new Date();
|
||||
} else {
|
||||
val = this.toint(val);
|
||||
if (val == 0)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
<template>
|
||||
<template v-for="(item,index) in htmls" :key="index">
|
||||
<view v-if="item.type == 'image'" style="text-align:center;">
|
||||
<image :src="file_stor(item.content)" mode="widthFix" style="max-width:100%;"></image>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'video'" style="text-align:center;">
|
||||
<video :src="file_stor(item.content)" style="width:100%;"></video>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'audio'" style="padding:1em;">
|
||||
<ciy-audio :src="file_stor(item.content)"></ciy-audio>
|
||||
</view>
|
||||
<view v-else v-html="item.content" style="width:100%;position: relative;"></view>
|
||||
<view v-if="item.type == 'image'" style="text-align:center;">
|
||||
<image :src="file_stor(item.content)" mode="heightFix" style="max-width:100%;"></image>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'video'" style="text-align:center;">
|
||||
<video :src="file_stor(item.content)" style="width:100%;"></video>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'audio'" style="padding:1em;">
|
||||
<ciy-audio :src="file_stor(item.content)"></ciy-audio>
|
||||
</view>
|
||||
<view v-else v-html="item.content" style="width:100%;position: relative;padding:0 1em;"></view>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
|
|
@ -42,55 +42,76 @@
|
|||
convert(markdown) {
|
||||
// #,!,`,@lcr,|表格
|
||||
markdown = markdown || '';
|
||||
if (markdown.substr(0, 4) != '[MD]')
|
||||
return markdown;
|
||||
markdown = markdown.substr(4).trim();
|
||||
if (markdown.substring(0, 4) == '[MD]')
|
||||
markdown = markdown.substring(4).trim();
|
||||
var mds = markdown.split('\n');
|
||||
var htmls = [];
|
||||
var html = '';
|
||||
var titnum2 = 0;
|
||||
var titnum3 = 0;
|
||||
var titnum4 = 0;
|
||||
var isol = false;
|
||||
var titnum = [0, 0, 0, 0, 0];
|
||||
for (var m in mds) {
|
||||
if (mds[m].length == 0) {
|
||||
continue;
|
||||
}
|
||||
if (mds[m].length > 0 && mds[m].trim() == '') {
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
html += '<br/>';
|
||||
continue;
|
||||
}
|
||||
if (mds[m][0] == '#') { //标题1/2/3
|
||||
if (mds[m].substr(0, 4) == '####') {
|
||||
titnum4++;
|
||||
html += '<h3 class="md-h4">' + titnum2 + '.' + titnum3 + '.' + titnum4 + '、' + convertcode(mds[
|
||||
m].substr(4)) + '</h3>';
|
||||
} else if (mds[m].substr(0, 3) == '###') {
|
||||
titnum3++;
|
||||
titnum4 = 0;
|
||||
html += '<h3 class="md-h3">' + titnum2 + '.' + titnum3 + '、' + convertcode(mds[m].substr(3)) +
|
||||
'</h3>';
|
||||
} else if (mds[m].substr(0, 2) == '##') {
|
||||
titnum2++;
|
||||
titnum3 = 0;
|
||||
html += '<h2 class="md-h2">' + titnum2 + '、' + convertcode(mds[m].substr(2)) + '</h2>';
|
||||
} else if (mds[m].substr(1, 1) == 'c' || mds[m].substr(1, 1) == 'C')
|
||||
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mds[m].substr(2)) +
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
var cr = mds[m].substring(1, 2).toLowerCase();
|
||||
if (mds[m].substring(0, 5) == '#####') {
|
||||
if (mds[m].substring(5, 6) == '1')
|
||||
html += '<h5 class="md-h5">' + olnum(4, titnum, '、') + convertcode(mds[m].substring(6)) + '</h5>';
|
||||
else
|
||||
html += '<h5 class="md-h5">' + convertcode(mds[m].substring(5)) + '</h5>';
|
||||
} else if (mds[m].substring(0, 4) == '####') {
|
||||
if (mds[m].substring(4, 5) == '1')
|
||||
html += '<h4 class="md-h4">' + olnum(3, titnum, '、') + convertcode(mds[m].substring(5)) + '</h4>';
|
||||
else
|
||||
html += '<h4 class="md-h4">' + convertcode(mds[m].substring(4)) + '</h4>';
|
||||
} else if (mds[m].substring(0, 3) == '###') {
|
||||
if (mds[m].substring(3, 4) == '1')
|
||||
html += '<h3 class="md-h3">' + olnum(2, titnum, '、') + convertcode(mds[m].substring(4)) + '</h3>';
|
||||
else
|
||||
html += '<h3 class="md-h3">' + convertcode(mds[m].substring(3)) + '</h3>';
|
||||
} else if (mds[m].substring(0, 2) == '##') {
|
||||
if (mds[m].substring(2, 3) == '1')
|
||||
html += '<h2 class="md-h2">' + olnum(1, titnum, '、') + convertcode(mds[m].substring(3)) + '</h2>';
|
||||
else
|
||||
html += '<h2 class="md-h2">' + convertcode(mds[m].substring(2)) + '</h2>';
|
||||
} else if (cr == 'c')
|
||||
html += '<h1 class="md-h1" style="text-align:center;">' + convertcode(mds[m].substring(2)) +
|
||||
'</h1>';
|
||||
else if (mds[m].substr(1, 1) == 'r' || mds[m].substr(1, 1) == 'R')
|
||||
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mds[m].substr(2)) +
|
||||
else if (cr == 'r')
|
||||
html += '<h1 class="md-h1" style="text-align:right;">' + convertcode(mds[m].substring(2)) +
|
||||
'</h1>';
|
||||
else if (cr == '1')
|
||||
html += '<h1 class="md-h1">' + olnum(0, titnum, '、') + convertcode(mds[m].substring(2)) + '</h1>';
|
||||
else
|
||||
html += '<h1 class="md-h1">' + convertcode(mds[m].substr(1)) + '</h1>';
|
||||
html += '<h1 class="md-h1">' + convertcode(mds[m].substring(1)) + '</h1>';
|
||||
|
||||
} else if (mds[m][0] == '@') { //c居中,r靠右
|
||||
if (mds[m][1] == 'c' || mds[m][1] == 'C')
|
||||
html += '<div class="md-content" style="text-align:center;">' + convertcode(mds[m].substr(2)) +
|
||||
'</div>';
|
||||
else if (mds[m][1] == 'r' || mds[m][1] == 'R')
|
||||
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(
|
||||
mds[m].substr(2)) + '</div>';
|
||||
else
|
||||
html += '<div class="md-content">' + mds[m].substr(1) + '</div>';
|
||||
var cr = mds[m].substring(1, 2).toLowerCase();
|
||||
if (cr == 'c')
|
||||
html += '<div class="md-content" style="text-align:center;">' + convertcode(mds[m].substring(2)) + '</div>';
|
||||
else if (cr == 'r')
|
||||
html += '<div class="md-content" style="text-align:right;margin-right:1em;">' + convertcode(mds[m].substring(2)) + '</div>';
|
||||
else if (mds[m][1] == '1') {
|
||||
if (!isol) {
|
||||
isol = true;
|
||||
html += '<ol>';
|
||||
}
|
||||
html += '<li style="line-height: 1.5em;padding: 0.5em 0;">' + convertcode(mds[m].substring(2)) + '</li>';
|
||||
} else
|
||||
html += '<div class="md-content">' + mds[m].substring(1) + '</div>';
|
||||
|
||||
} else if (mds[m][0] == '!') { //图片、视频、音频
|
||||
var mis = mds[m].split('|');
|
||||
|
|
@ -103,63 +124,102 @@
|
|||
} else
|
||||
match = url.match(/\.([^./]+)$/);
|
||||
var exurl = match ? match[1] : '';
|
||||
htmls.push({type:'text',content:html});
|
||||
htmls.push({
|
||||
type: 'text',
|
||||
content: html
|
||||
});
|
||||
html = '';
|
||||
if (exurl == 'mp4' || exurl == 'm3u8') {
|
||||
var alt = '';
|
||||
if (mis[1])
|
||||
alt = ' alt="' + mis[1].replace('"', "") + '"';
|
||||
htmls.push({type:'video',content:url});
|
||||
htmls.push({
|
||||
type: 'video',
|
||||
content: url
|
||||
});
|
||||
} else if (exurl == 'mp3') {
|
||||
var alt = '';
|
||||
if (mis[1])
|
||||
alt = ' alt="' + mis[1].replace('"', "") + '"';
|
||||
htmls.push({type:'audio',content:url});
|
||||
htmls.push({
|
||||
type: 'audio',
|
||||
content: url
|
||||
});
|
||||
} else {
|
||||
var alt = '';
|
||||
if (mis[1])
|
||||
alt = ' alt="' + mis[1].replace('"', "") + '"';
|
||||
htmls.push({type:'image',content:url});
|
||||
htmls.push({
|
||||
type: 'image',
|
||||
content: url
|
||||
});
|
||||
}
|
||||
} else if (mds[m][0] == '<') { //原始HTML
|
||||
html += mds[m];
|
||||
} else {
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
html += '<div class="md-content">' + convertcode(mds[m]) + '</div>';
|
||||
}
|
||||
}
|
||||
if(html)
|
||||
htmls.push({type:'text',content:html});
|
||||
if (html) {
|
||||
if (isol) {
|
||||
isol = false;
|
||||
html += '</ol>';
|
||||
}
|
||||
htmls.push({
|
||||
type: 'text',
|
||||
content: html
|
||||
});
|
||||
}
|
||||
return htmls;
|
||||
|
||||
function olnum(idx, olnum, end) {
|
||||
olnum[idx]++;
|
||||
for (var i = idx + 1; i < olnum.length; i++)
|
||||
olnum[i] = 0;
|
||||
for (var i = 0; i <= idx; i++) {
|
||||
if (olnum[i] == 0)
|
||||
continue;
|
||||
var ols = [];
|
||||
for (var j = i; j <= idx; j++) {
|
||||
ols.push(olnum[j]);
|
||||
}
|
||||
return ols.join('.') + end;
|
||||
}
|
||||
}
|
||||
|
||||
function convertcode(md) {
|
||||
var bcode = false;
|
||||
md = md.replace(/ /g, ' ').replace(/ /g, ' ');
|
||||
md = md.replace(/ /g, ' ');
|
||||
while (true) {
|
||||
var ind = md.indexOf('`');
|
||||
if (ind == -1)
|
||||
break;
|
||||
var el = '<text class="md-code">';
|
||||
var el = '<span class="md-code">';
|
||||
if (bcode) {
|
||||
bcode = false;
|
||||
el = '</text>';
|
||||
el = '</span>';
|
||||
} else
|
||||
bcode = true;
|
||||
md = md.substr(0, ind) + el + md.substr(ind + 1);
|
||||
md = md.substring(0, ind) + el + md.substring(ind + 1);
|
||||
}
|
||||
while (true) {
|
||||
var ind = md.indexOf('**');
|
||||
if (ind == -1)
|
||||
break;
|
||||
var el = '<text style="font-weight:bold;">';
|
||||
var el = '<span style="font-weight:bold;">';
|
||||
if (bcode) {
|
||||
bcode = false;
|
||||
el = '</text>';
|
||||
el = '</span>';
|
||||
} else
|
||||
bcode = true;
|
||||
md = md.substr(0, ind) + el + md.substr(ind + 2);
|
||||
md = md.substring(0, ind) + el + md.substring(ind + 2);
|
||||
}
|
||||
if (bcode)
|
||||
md += '</text>';
|
||||
md += '</span>';
|
||||
return md;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<view v-else-if="item.line" style="grid-column: 1 / -1;height: 3px;width: 100%;background: linear-gradient(90deg, transparent, var(--bg5), transparent);"></view>
|
||||
<view v-else class="_item" @tap="selitem(index)">
|
||||
<view class="_icon" v-if="item.icon"><ciy-svgimg :src="item.icon"></ciy-svgimg></view>
|
||||
<view class="_name" v-if="item.name">{{lang(item.name)}}</view>
|
||||
<view class="_name" :style="item.style" v-if="item.name">{{lang(item.name)}}</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<ciy-selbool left :name="item.form" v-model="data[item.form]"></ciy-selbool>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'radio'">
|
||||
<ciy-radiobox left :name="item.form" v-model="data[item.form]" :range="loadrange(gdict, item)"></ciy-radiobox>
|
||||
<ciy-radio left :name="item.form" v-model="data[item.form]" :range="loadrange(gdict, item)"></ciy-radio>
|
||||
</view>
|
||||
<view v-else-if="item.type == 'checkbox'">
|
||||
<ciy-checkbox left :name="item.form" v-model="data[item.form]" :range="loadrange(gdict, item)"></ciy-checkbox>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,224 @@
|
|||
<template>
|
||||
<view style="width:100%;">
|
||||
<input type="hidden" :name="name" :value="tkv.id" style="display:none;" />
|
||||
<template v-if="hasmore">
|
||||
<input type="hidden" :name="name+'_name'" :value="tkv.name" style="display:none;" />
|
||||
</template>
|
||||
<view v-if="innerrang.length==0" :style="{color:'var(--bg6)',textAlign:left?'left':''}">无选项</view>
|
||||
<radio-group class="_gp" :class="{'_line':line,'_left':left,'_itemright':itemright}">
|
||||
<view @tap="chkitem(item)" class="_item" v-for="(item,index) in innerrang" :key="index">
|
||||
<ciy-checkitem style="pointer-events: none;" :disabled="disabled" :tag="item.id+''" :value="tkv.id == item.id"></ciy-checkitem>
|
||||
<view :style="{color:disabled?'var(--txt1)':''}">{{item.name}}</view>
|
||||
</view>
|
||||
</radio-group>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
behaviors: ['uni://form-field-group'],
|
||||
emits: ['change', 'update:modelValue'],
|
||||
props: {
|
||||
name: {
|
||||
type: String
|
||||
},
|
||||
modelValue: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
value: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
initevent: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
hasmore: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
chkuse: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
range: {
|
||||
type: [String, Array],
|
||||
default: []
|
||||
},
|
||||
left: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
itemright: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
line: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
byname: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
v: '',
|
||||
valuearr: {
|
||||
id: 0,
|
||||
name: ''
|
||||
},
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
tkv: {
|
||||
handler(newD, oldD) {
|
||||
if (this.from && newD.id == oldD.id)
|
||||
return;
|
||||
if (!this.from)
|
||||
this.from = 'init';
|
||||
else if (this.from == 'init') {
|
||||
this.from = 'check';
|
||||
}
|
||||
if (this.from != 'init') {
|
||||
if (this.byname)
|
||||
this.$emit('update:modelValue', newD.name);
|
||||
else
|
||||
this.$emit('update:modelValue', newD.id);
|
||||
}
|
||||
if (this.from != 'init' || this.initevent) {
|
||||
this.$emit('change', {
|
||||
name: this.name,
|
||||
from: this.from,
|
||||
value: {
|
||||
id: newD.id,
|
||||
name: newD.name
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
value: {
|
||||
handler(newD, oldD) {
|
||||
if (newD || oldD)
|
||||
this.v = 'value';
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
modelValue: {
|
||||
handler(newD, oldD) {
|
||||
if (newD || oldD)
|
||||
this.v = 'modelValue';
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
innerrang() {
|
||||
if (typeof(this.range) == 'string') {
|
||||
const lis = this.range.split(',');
|
||||
var lst = [];
|
||||
for (let i = 0; i < lis.length; i++) {
|
||||
const ls = lis[i].split(':');
|
||||
if (ls.length < 2)
|
||||
continue;
|
||||
lst.push({
|
||||
id: ls[0],
|
||||
name: ls[1]
|
||||
});
|
||||
}
|
||||
return lst;
|
||||
}
|
||||
let range = [];
|
||||
for (let i = 0; i < this.range.length; i++) {
|
||||
if (this.chkuse && this.range[i].isuse == 2)
|
||||
continue;
|
||||
range.push(this.range[i]);
|
||||
}
|
||||
return range;
|
||||
},
|
||||
tkv() {
|
||||
var val = '';
|
||||
if (this.v == 'modelValue') {
|
||||
if (typeof(this.modelValue) == 'number')
|
||||
val = this.modelValue;
|
||||
else if (this.modelValue)
|
||||
val = this.modelValue;
|
||||
} else if (this.v == 'value') {
|
||||
if (typeof(this.value) == 'number')
|
||||
val = this.value;
|
||||
else if (this.value)
|
||||
val = this.value;
|
||||
} else {
|
||||
val = this.v;
|
||||
}
|
||||
if (this.byname) {
|
||||
for (var i in this.innerrang) {
|
||||
if (this.innerrang[i].name == val)
|
||||
return {
|
||||
...this.innerrang[i]
|
||||
};
|
||||
}
|
||||
} else {
|
||||
for (var i in this.innerrang) {
|
||||
if (this.innerrang[i].id == val)
|
||||
return {
|
||||
...this.innerrang[i]
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
id: 0,
|
||||
name: ''
|
||||
};
|
||||
}
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
chkitem(itm) {
|
||||
if (this.disabled)
|
||||
return;
|
||||
this.v = itm.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
._gp {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
._gp._left {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
._gp ._item {
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5em;
|
||||
min-width: 7em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
._gp._itemright ._item {
|
||||
justify-content: flex-start;
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
._gp._line ._item {
|
||||
width: 100%;
|
||||
white-space: normal;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
if (typeof(this.lis) == 'string') {
|
||||
const lis = this.lis.split(',');
|
||||
for (let i = 0; i < lis.length; i++) {
|
||||
const ls = lis[i].split('.');
|
||||
const ls = lis[i].split(':');
|
||||
if (ls.length < 2)
|
||||
continue;
|
||||
lst.push({
|
||||
|
|
@ -88,8 +88,6 @@
|
|||
name: ls[1]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (this.isarray(this.lis)) {
|
||||
for (var i = 0; i < this.lis.length; i++)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
<slot name="list" :data="{value:tvalue, range:range}">
|
||||
<view class="_defshow" :class="{_left:left}">
|
||||
<template v-for="(item,index) in tvalue.sels" :key="index">
|
||||
<view style="padding-left:0.3em;" v-if="index>0">~</view>
|
||||
<view class="itm" v-if="item.id > 0">{{item.name}}</view>
|
||||
</template>
|
||||
<view class="itm" v-if="tvalue.sels.length == 0">{{placeholder?placeholder:lang('placeholder.select')}}</view>
|
||||
|
|
@ -35,7 +36,7 @@
|
|||
</view>
|
||||
<view class="_list">
|
||||
<template v-for="(item,index) in range" :key="index">
|
||||
<view class="itm" @tap="selandnext(index)" v-if="item.upid == openvalue.upval" :class="{select:item.id == openvalue.value}">
|
||||
<view class="itm" @tap="selandnext(index)" v-if="(!chkuse || item.isuse != 2) && item.upid == openvalue.upval" :class="{select:item.id == openvalue.value}">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -57,7 +58,7 @@
|
|||
}
|
||||
|
||||
._defshow>.itm {
|
||||
padding-left: 0.5em;
|
||||
padding-left: 0.3em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
|
@ -149,6 +150,10 @@
|
|||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
chkuse: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
range: {
|
||||
type: Array,
|
||||
default: []
|
||||
|
|
@ -170,7 +175,7 @@
|
|||
},
|
||||
rootupid: {
|
||||
type: [String, Number],
|
||||
default: 0
|
||||
default: undefined
|
||||
},
|
||||
asyncdata: {
|
||||
type: Boolean,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="_list" :class="rows==1?'_flex':'_grid'" :style="'grid-template-columns: repeat('+rows+', 1fr);text-align:' + itemalign">
|
||||
<slot name="list" :data="{range:mrange,searchkey:searchval,popclass:popclass}">
|
||||
<slot name="list" :data="{range:mrange,searchkey:searchval,popclass:popclass,onselect:Selitem}">
|
||||
<view class="_item" :class="{_select:tvalue.id==item.id}" v-for="(item,index) in mrange" :key="index" @tap="Selitem(index)">
|
||||
{{item.name}}
|
||||
</view>
|
||||
|
|
@ -72,12 +72,16 @@
|
|||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
chkuse: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
range: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
diastema: { //上下间隙
|
||||
type: Number,
|
||||
|
|
@ -87,6 +91,10 @@
|
|||
type: String,
|
||||
default: ''
|
||||
},
|
||||
all: { //0值选项
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
noarrow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
|
|
@ -138,11 +146,20 @@
|
|||
computed: {
|
||||
mrange() {
|
||||
var mr = [];
|
||||
if (this.all)
|
||||
mr.push({
|
||||
id: 0,
|
||||
name: this.all
|
||||
});
|
||||
for (var i in this.range) {
|
||||
if(this.chkuse && this.range[i].isuse == 2)
|
||||
continue;
|
||||
if (this.range[i].name.indexOf(this.searchval) > -1)
|
||||
mr.push(this.range[i]);
|
||||
}
|
||||
for (var i in this.addrange) {
|
||||
if(this.chkuse && this.range[i].isuse == 2)
|
||||
continue;
|
||||
if (this.addrange[i].name.indexOf(this.searchval) > -1)
|
||||
mr.push(this.addrange[i]);
|
||||
}
|
||||
|
|
@ -376,7 +393,7 @@
|
|||
|
||||
._select ._item._select {
|
||||
font-weight: bold;
|
||||
color:var(--man6);
|
||||
color: var(--man6);
|
||||
}
|
||||
|
||||
._select ._pop ._list._flex ._item {
|
||||
|
|
@ -406,7 +423,7 @@
|
|||
._select ._pop._top ._list._grid ._item {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
|
||||
._select ._pop ._list ._nodata {
|
||||
background: var(--bg2);
|
||||
text-align: center;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
default: ''
|
||||
},
|
||||
ciystyle: {
|
||||
type: String,
|
||||
type: [String, Object],
|
||||
default: ''
|
||||
},
|
||||
intstyle: {
|
||||
|
|
|
|||
|
|
@ -1,24 +1,32 @@
|
|||
<template>
|
||||
<view style="width:100%;position: relative;display:flex;">
|
||||
<slider :name="name" :value="valuetxt" :disabled="disabled" :min="min" :max="max" :step="step" :show-value="showValue" @change="textchange" style="width: 100%;margin: 0 1em;" />
|
||||
<slider :name="name" :value="txtvalue" :style="ciystyle" :disabled="disabled" :min="min" :max="max" :step="step" :show-value="false" @changing="textchanging" @change="textchange" style="width: 100%;margin: 0 1em;" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
behaviors: ['uni://form-field-group'],
|
||||
emits: ['change', 'update:modelValue'],
|
||||
props: {
|
||||
name: {
|
||||
type: String
|
||||
},
|
||||
modelValue: {
|
||||
type: [String, Number],
|
||||
default: 0
|
||||
},
|
||||
value: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
default: 0
|
||||
},
|
||||
initevent: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
ciystyle: {
|
||||
type: [String, Object]
|
||||
},
|
||||
min: {
|
||||
type: [String, Number],
|
||||
default: 0
|
||||
|
|
@ -31,47 +39,58 @@
|
|||
type: [String, Number],
|
||||
default: 1
|
||||
},
|
||||
showValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
Gvalue: false,
|
||||
valuetxt: 0,
|
||||
};
|
||||
return {};
|
||||
},
|
||||
watch: {
|
||||
value(newD, oldD) {
|
||||
if (this.Gvalue)
|
||||
this.Gvalue = false;
|
||||
else
|
||||
this.valuetxt = newD;
|
||||
},
|
||||
computed: {
|
||||
txtvalue() {
|
||||
if (typeof(this.modelValue) == 'number')
|
||||
return this.modelValue;
|
||||
if (typeof(this.value) == 'number')
|
||||
return this.value;
|
||||
if (this.modelValue)
|
||||
return this.modelValue;
|
||||
if (this.value)
|
||||
return this.value;
|
||||
return this.min;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.valuetxt = c.getint(this.value);
|
||||
if (this.initevent) {
|
||||
this.$emit('change', {
|
||||
name: this.name,
|
||||
from: 'init',
|
||||
value: this.valuetxt
|
||||
value: this.txtvalue
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
textchange(e) {
|
||||
textchanging(e) {
|
||||
var txt = e.detail.value;
|
||||
this.Gvalue = true;
|
||||
this.$emit('input', txt);
|
||||
if (txt === undefined)
|
||||
txt = e.data;
|
||||
this.$emit('update:modelValue', txt);
|
||||
this.$emit('change', {
|
||||
name: this.name,
|
||||
from: 'text-show',
|
||||
from: 'changing',
|
||||
value: txt
|
||||
});
|
||||
},
|
||||
textchange(e) {
|
||||
var txt = e.detail.value;
|
||||
if (txt === undefined)
|
||||
txt = e.data;
|
||||
this.$emit('update:modelValue', txt);
|
||||
this.$emit('change', {
|
||||
name: this.name,
|
||||
from: 'changed',
|
||||
value: txt
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
margin: 1em;
|
||||
border-radius: 2.5em;
|
||||
background: #dddddd22;
|
||||
/* box-shadow: 0 0 50px 5px #ffffff; */
|
||||
border: 1px solid var(--bg6);
|
||||
backdrop-filter: blur(20px);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<textarea class="_textarea" :class="{_bb:bb,_disabled:disabled}" :name="name" :value="txtvalue" :placeholder="placeholder" :cursor="cursor" :cursor-spacing="120" :disabled="disabled" :maxlength="maxlength" :auto-height="!ciystyle.height" :fixed="fixed" @input="textinput" :style="ciystyle" @focus="textfocus" @blur="textblur" @linechange="textline"></textarea>
|
||||
<view v-if="showtotal" class="txt-right txt1 txt-smmm" style="line-height:1em;margin:-0.5em 0.4em 0.6em 0;">{{totaltxt}}</view>
|
||||
<view v-if="showtotal" class="txt-right txt1 txt-smmm" style="line-height:1em;margin:-0.5em 0.4em 0.6em 0;">{{totaltxt}}<text v-if="maxlength>-1">/{{maxlength}}</text>字</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -108,11 +108,11 @@
|
|||
},
|
||||
total(val) {
|
||||
if (!val) {
|
||||
this.totaltxt = '0字';
|
||||
this.totaltxt = '0';
|
||||
return;
|
||||
}
|
||||
var linelen = val.split('\n').length;
|
||||
this.totaltxt = linelen + '行,' + val.length + '字';
|
||||
this.totaltxt = linelen + '行,' + val.length;
|
||||
},
|
||||
Getcursor() {
|
||||
return this._cursor;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<template>
|
||||
<ciy-header title="工程化改进"></ciy-header>
|
||||
<view class="ciy-card">
|
||||
<view class="title">
|
||||
<view class="mk"></view>页面自动添加通用组件
|
||||
<view class="title mk">
|
||||
页面自动添加通用组件
|
||||
</view>
|
||||
<view class="right">template</view>
|
||||
<view class="content">
|
||||
|
|
|
|||
|
|
@ -58,6 +58,12 @@
|
|||
<ciy-checkbox bin :value="formvalue16" name="ciy5" :range="rang" @change="chglog('change', $event)"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>简易range</label>
|
||||
<view>
|
||||
<ciy-checkbox :value="formvalue" name="ciy6" range="10:待处理,20:已处理" @change="chglog('change', $event)"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="txt-center px4 py4">
|
||||
<button class="btn" form-type="submit">提交表单</button>
|
||||
|
|
@ -108,6 +114,7 @@
|
|||
<view class="prp">range</view>
|
||||
<view class="tip">
|
||||
选项数组,object需包含id,name,upid。<br />
|
||||
简易字符串,id1.name1,id2.name2,...<br />
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">bin</view>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
<view class="title">通用ciystyle属性</view>
|
||||
<view class="content">
|
||||
弥补微信小程序问题,通过该属性穿透到组件内部。<br/>
|
||||
<text style="color:var(--dag5)">组件上不能添加class、style属性</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
|
|
|
|||
|
|
@ -32,6 +32,12 @@
|
|||
<ciy-inputcyc disabled name="ciy4" :value="formvalue" @change="chglog('change', $event)"></ciy-inputcyc>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>选择</label>
|
||||
<view>
|
||||
<ciy-inputcyc bb name="ciy5" range="month,day,hour,min,sec" :value="formvalue" @change="chglog('change', $event)"></ciy-inputcyc>
|
||||
</view>
|
||||
</view>
|
||||
<view class="txt-center px4 py4">
|
||||
<button class="btn" form-type="submit">提交表单</button>
|
||||
<button class="btn" @tap="formvalue='-2'">改月</button>
|
||||
|
|
@ -79,6 +85,12 @@
|
|||
是否传统文本框样式。<br />
|
||||
默认 false
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">range</view>
|
||||
<view class="tip">
|
||||
可选择单位,支持month,day,hour,min,sec。<br />
|
||||
默认 month,day,min
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
mixins: [zmixin],
|
||||
data() {
|
||||
return {
|
||||
formvalue: ''
|
||||
formvalue: 2
|
||||
}
|
||||
},
|
||||
onLoad() {},
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<ciy-header ref="header" title="ciy-radiobox组件"></ciy-header>
|
||||
<ciy-header ref="header" title="ciy-radio组件"></ciy-header>
|
||||
<view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">单选框</view>
|
||||
|
|
@ -28,25 +28,31 @@
|
|||
<view class="ciy-form">
|
||||
<label>v-model绑定</label>
|
||||
<view>
|
||||
<ciy-radiobox v-model="formvalue" name="ciy1" :range="rang" @change="chglog('change', $event)"></ciy-radiobox>
|
||||
<ciy-radio v-model="formvalue" name="ciy1" :range="rang" @change="chglog('change', $event)"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>整行排列</label>
|
||||
<view>
|
||||
<ciy-radiobox line itemright hasmore :value="formvalue" name="ciy2" :range="rang" @change="chglog('change', $event)"></ciy-radiobox>
|
||||
<ciy-radio line itemright hasmore :value="formvalue" name="ciy2" :range="rang" @change="chglog('change', $event)"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>禁用</label>
|
||||
<view>
|
||||
<ciy-radiobox left disabled :value="formvalue" name="ciy3" :range="rang" @change="chglog('change', $event)"></ciy-radiobox>
|
||||
<ciy-radio left disabled :value="formvalue" name="ciy3" :range="rang" @change="chglog('change', $event)"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label class="imp">每行一条</label>
|
||||
<view>
|
||||
<ciy-radiobox line :value="formvalue" name="ciy4" :range="rang" @change="chglog('change', $event)"></ciy-radiobox>
|
||||
<ciy-radio line :value="formvalue" name="ciy4" :range="rang" @change="chglog('change', $event)"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>简易range</label>
|
||||
<view>
|
||||
<ciy-radio :value="formvalue" name="ciy5" range="10:待处理,20:已处理" @change="chglog('change', $event)"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
@ -86,6 +92,7 @@
|
|||
<view class="prp">range</view>
|
||||
<view class="tip">
|
||||
选项数组,object需包含id,name,upid。<br />
|
||||
简易字符串,id1.name1,id2.name2,...<br />
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">itemright</view>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<view class="ciy-form">
|
||||
<label class="imp">选择部分</label>
|
||||
<view>
|
||||
<ciy-selcas initevent allowpart clearbtn :value="formvalue" name="ciy5" :range="g.ciy_arearpc" @change="chglog('change', $event)"></ciy-selcas>
|
||||
<ciy-selcas initevent allowpart clearbtn :value="formvalue" name="ciy5" :range="g.ciy_arearpc" :rootupid="0" @change="chglog('change', $event)"></ciy-selcas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
|
|
@ -110,7 +110,7 @@
|
|||
<view class="tip">
|
||||
根upid值。<br/>
|
||||
首先在range中检索upid为该值的选项。<br />
|
||||
默认 0
|
||||
默认 undefined
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">allowpart</view>
|
||||
|
|
@ -175,15 +175,12 @@
|
|||
formvalue: 210111,
|
||||
dict: [{
|
||||
id: 1,
|
||||
upid: 0,
|
||||
name: '选项1'
|
||||
}, {
|
||||
id: 2,
|
||||
upid: 0,
|
||||
name: '选项2'
|
||||
}, {
|
||||
id: 3,
|
||||
upid: 0,
|
||||
name: '选项3'
|
||||
}, {
|
||||
id: 5,
|
||||
|
|
|
|||
|
|
@ -49,10 +49,10 @@
|
|||
<view class="ciy-form">
|
||||
<label class="imp">自定义列表</label>
|
||||
<view>
|
||||
<ciy-select ref="mysel" left placeholder="请选择" :value="formvalue" name="ciy4" :range="rang" @change="chglog('change', $event)" @search="chglog('search', $event)">
|
||||
<ciy-select left placeholder="请选择" :value="formvalue" name="ciy4" :range="rang" @change="chglog('change', $event)" @search="chglog('search', $event)">
|
||||
<template v-slot:list="{data}">
|
||||
<view style="background:var(--bg2);border-radius: 0.5em;">
|
||||
<view v-for="(item,index) in data.range" :key="index" @tap="this.$refs.mysel.Selitem(index);" style="padding:1em;background:linear-gradient(90deg, var(--bg9), var(--bg4));margin: 0.5em;border-radius: 0.5em;">
|
||||
<view v-for="(item,index) in data.range" :key="index" @tap="data.onselect(index);" style="padding:1em;background:linear-gradient(90deg, var(--bg9), var(--bg4));margin: 0.5em;border-radius: 0.5em;">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -133,6 +133,12 @@
|
|||
默认 无
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">all</view>
|
||||
<view class="tip">
|
||||
在range上增加一个0值选项<br/>
|
||||
默认 无
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">ciystyle</view>
|
||||
<view class="tip">
|
||||
内部显示属性<br/>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
<button class="btn sm" @tap="inputalert(3)">无头弹窗</button>
|
||||
<button class="btn sm" @tap="inputalert(4)">标题弹窗</button>
|
||||
<button class="btn sm" @tap="inputalert(5)">多按钮</button>
|
||||
<button class="btn sm" @tap="inputalert(6)">赋值</button>
|
||||
</view>
|
||||
<view v-html="tobr(formdata, true)" class="formdata"></view>
|
||||
<view class="hr"></view>
|
||||
|
|
@ -87,6 +88,12 @@
|
|||
input单行文本框,textarea多行文本框。<br />
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">value</view>
|
||||
<view class="tip">
|
||||
支持输入框。<br />
|
||||
框内默认文字。<br />
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">height</view>
|
||||
<view class="tip">
|
||||
弹框高度。<br />
|
||||
|
|
@ -225,6 +232,13 @@
|
|||
cls: 'def'
|
||||
}]);
|
||||
}
|
||||
if (type == 6) {
|
||||
var btn = await this.inputmsg({
|
||||
title: '请填写修改项',
|
||||
ele: 'textarea',
|
||||
value: '内容1\n内容2'
|
||||
});
|
||||
}
|
||||
this.formdata = JSON.stringify(btn);
|
||||
},
|
||||
appalert() {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,14 @@
|
|||
<button class="btn" @tap="anistr='op1,sa1|op1,sa0.5,500|op0.5,sa1.5,500|op1,sa1,500'">属性控制动画2</button>
|
||||
<br />
|
||||
<button class="btn" @tap="ani(4)">复杂动画</button>
|
||||
<ciy-ani ref="anihei" :ani="anihei" ciystyle="background:var(--bg1);overflow:hidden;">
|
||||
<view v-for="index in Array(heis).keys()" :key="index">
|
||||
{{index}}
|
||||
</view>
|
||||
</ciy-ani>
|
||||
<button class="btn" @tap="anihei(1)">放出</button>
|
||||
<button class="btn" @tap="anihei(2)">收回</button>
|
||||
<button class="btn" @tap="heis=Math.floor(Math.random() * 7) + 3">随机{{heis}}</button> hh效果较差,移步ciy-aniheight
|
||||
<view class="ciy-card">
|
||||
<view class="title">属性</view>
|
||||
<view class="content">
|
||||
|
|
@ -137,11 +145,21 @@
|
|||
mixins: [zmixin],
|
||||
data() {
|
||||
return {
|
||||
heis:5,
|
||||
anistr: ''
|
||||
}
|
||||
},
|
||||
onLoad() {},
|
||||
onLoad() {
|
||||
},
|
||||
methods: {
|
||||
async anihei(type) {
|
||||
if (type == 1) {
|
||||
this.$refs.anihei.Doani('hh0,0|hhauto,2500');
|
||||
}
|
||||
if (type == 2) {
|
||||
this.$refs.anihei.Doani('hhauto,0|hh0,2500');
|
||||
}
|
||||
},
|
||||
async ani(type) {
|
||||
if (type == 1) {
|
||||
this.$refs.ani.Doani('op0,sa0|op1,sa0.5,ty-1em,2500|sa1,op1,ty2em,1500');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
<template>
|
||||
<ciy-header ref="header" title="ciy-aniheight组件"></ciy-header>
|
||||
<view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">高度专用动画组件</view>
|
||||
<view class="content">
|
||||
<view class="tip">
|
||||
支持自适应高度变化动画。<br />
|
||||
由于微信小程序等的限制,通用方法存在跳帧、并帧等兼容性问题。<br />
|
||||
</view>
|
||||
|
||||
<view class="txt-wb">原理</view>
|
||||
<view class="tip">
|
||||
不使用createAnimation和transition。<br />
|
||||
定时器动态更新height。<br />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<button class="btn" @tap="anihei=true">放出</button>
|
||||
<button class="btn" @tap="anihei=false">收回</button>
|
||||
<button class="btn" @tap="heis=Math.floor(Math.random() * 15) + 3">随机{{heis}}</button>
|
||||
<ciy-aniheight ref="anihei" :show="anihei" ciystyle="background:var(--bg1);overflow:hidden;">
|
||||
<view v-for="index in Array(heis).keys()" :key="index">
|
||||
{{index}}
|
||||
</view>
|
||||
</ciy-aniheight>
|
||||
<view class="ciy-card">
|
||||
<view class="title">属性</view>
|
||||
<view class="content">
|
||||
<view class="prp">ani</view>
|
||||
<view class="tip">动画字符串anis[String]。</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">方法</view>
|
||||
<view class="content">
|
||||
<view class="fun">async Doani</view>
|
||||
<view class="tip">
|
||||
触发一次动画<br />
|
||||
传入字符串或{anis, init}<br />
|
||||
anis: 支持字符串或Array,定义动画。<br />
|
||||
init: createAnimation函数初始化的传参。<br />
|
||||
默认{timingFunction: 'ease'}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">anis[String]</view>
|
||||
<view class="content">
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">anis[Array]</view>
|
||||
<view class="content">
|
||||
包含多个{key:val}<br />
|
||||
key是Animation函数名<br />
|
||||
val是传参,多个值用[]展开。<br />
|
||||
key=step,传参用{duration:n, ...}。<br />
|
||||
key=hide,为隐藏动画元素。<br />
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">事件</view>
|
||||
<view class="content">
|
||||
无
|
||||
<!-- <view class="evt">@change</view> -->
|
||||
<view class="log" v-for="(item, index) in eventlog" :key="index">
|
||||
<text class="code">{{eventlog.length - index}}</text>
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@import '@/pages/demo/zdemo.css';
|
||||
.anibox {
|
||||
width: 10em;
|
||||
height: 5em;
|
||||
background: #42ab00;
|
||||
border-radius: 0.5em;
|
||||
text-align: center;
|
||||
line-height: 5em;
|
||||
color: #ffffff;
|
||||
margin: 2em auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import zmixin from '@/pages/demo/zmixin.js';
|
||||
export default {
|
||||
mixins: [zmixin],
|
||||
data() {
|
||||
return {
|
||||
heis:5,
|
||||
anihei: false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
从某个方向出现。<br/>
|
||||
bottom从下方,top,left、right。<br />
|
||||
</view>
|
||||
<ciy-radiobox left v-model="props.direction" :range="[{id:'bottom',name:'bottom'},{id:'top',name:'top'},{id:'left',name:'left'},{id:'right',name:'right'}]"></ciy-radiobox>
|
||||
<ciy-radio left v-model="props.direction" :range="[{id:'bottom',name:'bottom'},{id:'top',name:'top'},{id:'left',name:'left'},{id:'right',name:'right'}]"></ciy-radio>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">edge</view>
|
||||
<view class="tip">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
如果text或idcard,且无文字的情况,5秒后自动超时。<br/>
|
||||
默认 text
|
||||
</view>
|
||||
<view><ciy-radiobox left v-model="props.mode" :range="[{id:'text',name:'text'},{id:'idcard',name:'idcard'}]"></ciy-radiobox></view>
|
||||
<view><ciy-radio left v-model="props.mode" :range="[{id:'text',name:'text'},{id:'idcard',name:'idcard'}]"></ciy-radio></view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">checkidcard</view>
|
||||
<view class="tip">
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
front 人像面、back 国徽面。<br />
|
||||
默认 无
|
||||
</view>
|
||||
<view><ciy-radiobox left v-model="props.mode" :range="[{id:'',name:'不限'},{id:'front人像',name:'front'},{id:'back',name:'back'}]"></ciy-radiobox></view>
|
||||
<view><ciy-radio left v-model="props.mode" :range="[{id:'',name:'不限'},{id:'front人像',name:'front'},{id:'back',name:'back'}]"></ciy-radio></view>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">maskpng</view>
|
||||
<view class="tip">
|
||||
|
|
|
|||
|
|
@ -40,13 +40,13 @@
|
|||
scroll: 顶部全屏效果,滚动后渐变默认效果。<br />
|
||||
左侧返回键,中间标题。<br />
|
||||
</view>
|
||||
<view><ciy-radiobox left v-model="props.mode" :range="[{id:'title',name:'title'},{id:'tran',name:'tran'},{id:'scroll',name:'scroll'}]"></ciy-radiobox></view>
|
||||
<view><ciy-radio left v-model="props.mode" :range="[{id:'title',name:'title'},{id:'tran',name:'tran'},{id:'scroll',name:'scroll'}]"></ciy-radio></view>
|
||||
<view class="hr"></view>
|
||||
<template v-if="props.mode == 'title'">
|
||||
<view class="prp">title</view>
|
||||
<view class="tip">标题文本</view>
|
||||
<view>
|
||||
<ciy-radiobox left v-model="props.title" :range="[{id:'ciy-header组件',name:'短标题'},{id:'标题1标题2标题3',name:'中标题'},{id:'标题1标题2标题3标题4标题5标题6标题7标题8标题9',name:'长标题'}]"></ciy-radiobox>
|
||||
<ciy-radio left v-model="props.title" :range="[{id:'ciy-header组件',name:'短标题'},{id:'标题1标题2标题3',name:'中标题'},{id:'标题1标题2标题3标题4标题5标题6标题7标题8标题9',name:'长标题'}]"></ciy-radio>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,88 @@
|
|||
<template>
|
||||
<ciy-header ref="header" title="ciy-showmoney组件"></ciy-header>
|
||||
<view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">金额显示</view>
|
||||
<view class="content">
|
||||
<view class="tip">
|
||||
金额显示。<br />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="txt-center">
|
||||
<ciy-showmoney :value="props.value" :unit="props.unit" :dec0="props.dec0" :intstyle="props.intstyle" :decstyle="props.decstyle"></ciy-showmoney>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">属性</view>
|
||||
<view class="content">
|
||||
<view class="prp">value</view>
|
||||
<view class="tip">显示的原始金额,分为单位。</view>
|
||||
<ciy-input bb v-model="props.value" style="width:8em;text-align: right;"></ciy-input>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">unit</view>
|
||||
<view class="tip">
|
||||
单位,支持元、万元。<br />
|
||||
</view>
|
||||
<ciy-input bb v-model="props.unit" style="width:4em;text-align: right;"></ciy-input>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">dec0</view>
|
||||
<view class="tip">
|
||||
是否显示全0小数。<br />
|
||||
默认 false
|
||||
</view>
|
||||
<ciy-switch v-model="props.dec0"></ciy-switch>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">intstyle</view>
|
||||
<view class="tip">
|
||||
整数部分style。<br />
|
||||
</view>
|
||||
<ciy-input bb v-model="props.intstyle"></ciy-input>
|
||||
|
||||
<view class="hr"></view>
|
||||
<view class="prp">decstyle</view>
|
||||
<view class="tip">
|
||||
小数及单位部分style。<br />
|
||||
</view>
|
||||
<ciy-input bb v-model="props.decstyle"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">方法</view>
|
||||
<view class="content">
|
||||
无
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">事件</view>
|
||||
<view class="content">
|
||||
无
|
||||
</view>
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
@import '@/pages/demo/zdemo.css';
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import zmixin from '@/pages/demo/zmixin.js';
|
||||
export default {
|
||||
mixins: [zmixin],
|
||||
data() {
|
||||
return {
|
||||
props: {
|
||||
value: 12500,
|
||||
unit: '万元',
|
||||
intstyle: '',
|
||||
decstyle: 'font-size:0.7em;',
|
||||
dec0: false
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad() {},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -39,19 +39,19 @@
|
|||
有间距的默认效果thumb,紧凑效果adj。<br />
|
||||
默认: thumb
|
||||
</view>
|
||||
<ciy-radiobox left v-model="props.type" :range="[{id:'thumb',name:'thumb'},{id:'adj',name:'adj'}]"></ciy-radiobox>
|
||||
<ciy-radio left v-model="props.type" :range="[{id:'thumb',name:'thumb'},{id:'adj',name:'adj'}]"></ciy-radio>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">mode</view>
|
||||
<view class="tip">
|
||||
图片显示方式。<br />
|
||||
默认: aspectFill
|
||||
</view>
|
||||
<ciy-radiobox left v-model="props.mode" :range="[{id:'aspectFill',name:'按比例尽量显示'}
|
||||
<ciy-radio left v-model="props.mode" :range="[{id:'aspectFill',name:'按比例尽量显示'}
|
||||
,{id:'aspectFit',name:'按比例全显示'}
|
||||
,{id:'widthFix',name:'宽度自适应'}
|
||||
,{id:'heightFix',name:'高度自适应'}
|
||||
,{id:'scaleToFill',name:'失真全显示'}
|
||||
]"></ciy-radiobox>
|
||||
]"></ciy-radio>
|
||||
<view class="hr"></view>
|
||||
<view class="prp">whpre</view>
|
||||
<view class="tip">
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
<view @tap="this.settheme('light')">light</view>
|
||||
</view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">
|
||||
<view class="mk"></view>ciy-card 卡片标题
|
||||
<view class="title mk">
|
||||
ciy-card 卡片标题
|
||||
</view>
|
||||
<view class="right">right右侧文字</view>
|
||||
<view class="content">
|
||||
|
|
@ -17,8 +17,16 @@
|
|||
<view v-html="tobr(`.content>view 内容区行间距自动设置。`)"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-caption">
|
||||
<view class="mk"></view>
|
||||
<view class="ciy-title mk">
|
||||
ciy-title标题段落(简易)
|
||||
</view>
|
||||
内容分隔
|
||||
<view class="ciy-title">
|
||||
<view class="title">ciy-title标题段落</view>
|
||||
<view class="right">right 右侧</view>
|
||||
</view>
|
||||
内容分隔
|
||||
<view class="ciy-caption mk">
|
||||
<view class="title">ciy-caption标题段落</view>
|
||||
<view class="right">right 右侧</view>
|
||||
<view class="sub">sub 子标题</view>
|
||||
|
|
|
|||
|
|
@ -80,9 +80,8 @@
|
|||
<view class="r5 px2 py2 bg6" style="margin-bottom:0.5em;">r5圆角 2rem</view>
|
||||
|
||||
<view>display: block/hide/flex</view>
|
||||
<view>flex: flexcol/flex1/flexnone/flex-center/flex-top/flex-wrap</view>
|
||||
<view>width: auto-w/auto-wmin (auto)</view>
|
||||
<view>transition: tran5/tran1</view>
|
||||
<view>flex: flexcol/flex1/flexnone/flex-center/flex-wrap</view>
|
||||
<view>transition: tran5</view>
|
||||
<view>position: sta/abs/fix/rel/sti</view>
|
||||
<view>pos: t0/l0/r0/b0,t1/l1/r1/b1</view>
|
||||
<view>noselect</view>
|
||||
|
|
|
|||
|
|
@ -10,131 +10,131 @@
|
|||
</view>
|
||||
<view v-else>
|
||||
<view class="ciy-form-group">
|
||||
<input type="hidden" name="id" :value="init.data.id" style="display:none;" />
|
||||
<input type="hidden" name="id" :value="pagedata.demo.id" style="display:none;" />
|
||||
<view class="ciy-form">
|
||||
<label class="imp">默认标题</label>
|
||||
<view>
|
||||
<ciy-input name="name" v-model="init.data.name"></ciy-input>
|
||||
<ciy-input name="name" v-model="pagedata.demo.name"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>所属菜单</label>
|
||||
<view>
|
||||
<ciy-select :range="g.zc_menu" name="menuid" v-model="init.data.menuid"></ciy-select>
|
||||
<ciy-select :range="g.zc_menu" name="menuid" v-model="pagedata.demo.menuid"></ciy-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>文件大小</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1024" unit="KB" name="filesize" v-model="init.data.filesize"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1024" unit="KB" name="filesize" v-model="pagedata.demo.filesize"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>长度</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" name="metre" v-model="init.data.metre"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="米" :ciystyle="{width:'8em'}" name="metre" v-model="pagedata.demo.metre"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>贷款金额</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000000" unit="万元" name="bankmoney" v-model="init.data.bankmoney"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000000" unit="万元" name="bankmoney" v-model="pagedata.demo.bankmoney"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>设置日期</label>
|
||||
<view>
|
||||
<ciy-inputdatetime name="setdate" v-model="init.data.setdate"></ciy-inputdatetime>
|
||||
<ciy-inputdatetime name="setdate" v-model="pagedata.demo.setdate"></ciy-inputdatetime>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>设置时间</label>
|
||||
<view>
|
||||
<ciy-inputdatetime btime name="settimes" v-model="init.data.settimes"></ciy-inputdatetime>
|
||||
<ciy-inputdatetime btime name="settimes" v-model="pagedata.demo.settimes"></ciy-inputdatetime>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>营业时间</label>
|
||||
<view>
|
||||
<ciy-inputtimepoint bsec name="dayclock" v-model="init.data.dayclock"></ciy-inputtimepoint>
|
||||
<ciy-inputtimepoint bsec name="dayclock" v-model="pagedata.demo.dayclock"></ciy-inputtimepoint>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>文档</label>
|
||||
<view>
|
||||
<ciy-upload num="5" filetype="all" imgwidth="1000" sourcetype="album,message" path="demo" name="downurl" v-model="init.data.downurl"></ciy-upload>
|
||||
<ciy-upload num="5" filetype="all" imgwidth="1000" sourcetype="album,message" path="demo" name="downurl" v-model="pagedata.demo.downurl"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>头像</label>
|
||||
<view>
|
||||
<ciy-upload imgwidth="600" imgheight="600" path="demo" name="avar" v-model="init.data.avar"></ciy-upload>
|
||||
<ciy-upload imgwidth="600" imgheight="600" path="demo" name="avar" v-model="pagedata.demo.avar"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>是否使用</label>
|
||||
<view>
|
||||
<ciy-selbool name="isuse" v-model="init.data.isuse"></ciy-selbool>
|
||||
<ciy-selbool name="isuse" v-model="pagedata.demo.isuse"></ciy-selbool>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>是否开启</label>
|
||||
<view>
|
||||
<ciy-selbool y="开启" n="关闭" name="isopen" v-model="init.data.isopen"></ciy-selbool>
|
||||
<ciy-selbool y="开启" n="关闭" name="isopen" v-model="pagedata.demo.isopen"></ciy-selbool>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>库存单位</label>
|
||||
<view>
|
||||
<ciy-inputunitedit name="unit" v-model="init.data.unit"></ciy-inputunitedit>
|
||||
<ciy-inputunitedit name="unit" v-model="pagedata.demo.unit"></ciy-inputunitedit>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>单选状态</label>
|
||||
<view>
|
||||
<ciy-radiobox left :range="g.auditstatus" name="sigstatus" v-model="init.data.sigstatus"></ciy-radiobox>
|
||||
<ciy-radio left :range="g.auditstatus" name="sigstatus" v-model="pagedata.demo.sigstatus"></ciy-radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>多选状态</label>
|
||||
<view>
|
||||
<ciy-checkbox itemright line :range="g.auditstatus" name="mauditstatus" v-model="init.data.mauditstatus"></ciy-checkbox>
|
||||
<ciy-checkbox itemright line :range="g.auditstatus" name="mauditstatus" v-model="pagedata.demo.mauditstatus"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>组织结构</label>
|
||||
<view>
|
||||
<ciy-selcas :range="g.zc_depart" name="prodcata" v-model="init.data.prodcata"></ciy-selcas>
|
||||
<ciy-selcas :range="g.zc_depart" name="prodcata" v-model="pagedata.demo.prodcata"></ciy-selcas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>所在地区</label>
|
||||
<view>
|
||||
<ciy-selcas :range="g.ciy_arearpc" name="areacode" v-model="init.data.areacode"></ciy-selcas>
|
||||
<ciy-selcas :range="g.ciy_arearpc" name="areacode" v-model="pagedata.demo.areacode"></ciy-selcas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>认证情况</label>
|
||||
<view>
|
||||
<ciy-checkbox bin left line :range="g.renzheng" name="renzheng" v-model="init.data.renzheng"></ciy-checkbox>
|
||||
<ciy-checkbox bin left line :range="g.renzheng" name="renzheng" v-model="pagedata.demo.renzheng"></ciy-checkbox>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>临时字典</label>
|
||||
<view>
|
||||
<ciy-select :range="g.ppint" name="ppint" v-model="init.data.ppint"></ciy-select>
|
||||
<ciy-select :range="g.ppint" name="ppint" v-model="pagedata.demo.ppint"></ciy-select>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>执行周期</label>
|
||||
<view>
|
||||
<ciy-inputcyc name="npcyc" v-model="init.data.npcyc"></ciy-inputcyc>
|
||||
<ciy-inputcyc name="npcyc" v-model="pagedata.demo.npcyc"></ciy-inputcyc>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>执行用时</label>
|
||||
<view>
|
||||
<ciy-input name="runsec" v-model="init.data.runsec"></ciy-input>
|
||||
<ciy-input name="runsec" v-model="pagedata.demo.runsec"></ciy-input>
|
||||
</view>
|
||||
<view style="flex:none;">秒</view>
|
||||
</view>
|
||||
|
|
@ -142,80 +142,80 @@
|
|||
<label>活动期数</label>
|
||||
<view class="flex flex-center" style="justify-content: flex-end;">
|
||||
第
|
||||
<ciy-input :ciystyle="{width:'3em',margin:'0 0.5em',textAlign:'center',display:'inline-block'}" name="acttm" v-model="init.data.acttm"></ciy-input>
|
||||
<ciy-input :ciystyle="{width:'3em',margin:'0 0.5em',textAlign:'center',display:'inline-block'}" name="acttm" v-model="pagedata.demo.acttm"></ciy-input>
|
||||
期
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>活动花絮</label>
|
||||
<view>
|
||||
<ciy-upload num="9" imgwidth="1920" zipjpg="0.8" path="demo" name="imgs" v-model="init.data.imgs"></ciy-upload>
|
||||
<ciy-upload num="9" imgwidth="1920" zipjpg="0.8" path="demo" name="imgs" v-model="pagedata.demo.imgs"></ciy-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>吨位</label>
|
||||
<view>
|
||||
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" name="ton" v-model="init.data.ton"></ciy-inputbet>
|
||||
<ciy-inputbet bb bet="1000000" unit="吨" :ciystyle="{width:'8em'}" name="ton" v-model="pagedata.demo.ton"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>单价</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="100" unit="元" name="price" v-model="init.data.price"></ciy-inputbet>
|
||||
<ciy-inputbet bet="100" unit="元" name="price" v-model="pagedata.demo.price"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>位置</label>
|
||||
<view>
|
||||
<ciy-selmap name="loc" v-model:lng="init.data.lng" v-model:lat="init.data.lat"></ciy-selmap>
|
||||
<ciy-selmap name="loc" v-model:lng="pagedata.demo.lng" v-model:lat="pagedata.demo.lat"></ciy-selmap>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>监管数量</label>
|
||||
<view>
|
||||
<ciy-input name="nums" v-model="init.data.nums"></ciy-input>
|
||||
<ciy-input name="nums" v-model="pagedata.demo.nums"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>百分比</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="100" unit="%" name="pct" v-model="init.data.pct"></ciy-inputbet>
|
||||
<ciy-inputbet bet="100" unit="%" name="pct" v-model="pagedata.demo.pct"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>链接</label>
|
||||
<view>
|
||||
<ciy-input name="url" v-model="init.data.url"></ciy-input>
|
||||
<ciy-input name="url" v-model="pagedata.demo.url"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>体重</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="公斤" name="weightg" v-model="init.data.weightg"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="公斤" name="weightg" v-model="pagedata.demo.weightg"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>耳温</label>
|
||||
<view>
|
||||
<ciy-inputbet bet="1000" unit="℃" name="eartmpr" v-model="init.data.eartmpr"></ciy-inputbet>
|
||||
<ciy-inputbet bet="1000" unit="℃" name="eartmpr" v-model="pagedata.demo.eartmpr"></ciy-inputbet>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>身份证号</label>
|
||||
<view>
|
||||
<ciy-input name="idcard" v-model="init.data.idcard"></ciy-input>
|
||||
<ciy-input name="idcard" v-model="pagedata.demo.idcard"></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>介绍</label>
|
||||
<view>
|
||||
<ciy-textarea name="content" v-model="init.data.content"></ciy-textarea>
|
||||
<ciy-textarea name="content" v-model="pagedata.demo.content"></ciy-textarea>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="ciy-form v">
|
||||
<label>富文本</label>
|
||||
<view>
|
||||
<ciy-mdedit name="md" v-model="init.data.md"></ciy-mdedit>
|
||||
<ciy-mdedit name="md" v-model="pagedata.demo.md"></ciy-mdedit>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
|
@ -236,11 +236,8 @@
|
|||
return {}
|
||||
},
|
||||
onLoad() {
|
||||
var app = getApp();
|
||||
this.init.data = app.globalData.ciy_page_init;
|
||||
if (!this.init.data)
|
||||
return this.alert('不能直接访问,请重新进入');
|
||||
this.g = app.globalData.ciy_page_g;
|
||||
if (!this.pagedata.demo)
|
||||
return this.alert('不能直接访问,请重新进入'); //独立进入写后端函数获取数据
|
||||
this.getdata();
|
||||
},
|
||||
watch: {},
|
||||
|
|
@ -278,19 +275,15 @@
|
|||
var retjson = await this.callajax({
|
||||
func: 'demo/demo.update',
|
||||
data: {
|
||||
...this.init.data
|
||||
...this.pagedata.demo
|
||||
}
|
||||
});
|
||||
this._loading = false;
|
||||
if (retjson.code != 1)
|
||||
return this.alert(retjson.errmsg);
|
||||
var page = getApp().getpage(1);
|
||||
if (!page)
|
||||
return;
|
||||
if (this.init.data._idx == -1)
|
||||
page.init.list.unshift(retjson.data);
|
||||
else
|
||||
page.init.list[this.init.data._idx] = this.objdeepmerge(page.init.list[this.init.data._idx], retjson.data);
|
||||
if (page?.init?.list)
|
||||
this.objtolist(page.init.list, retjson.data);
|
||||
// const eventChannel = this.getOpenerEventChannel();
|
||||
// eventChannel.emit('writedata', retjson.data);
|
||||
uni.navigateBack();
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
</template>
|
||||
</ciy-query>
|
||||
</view>
|
||||
<view class="ciy-list" :class="item._clas" v-for="(item,index) in init.list" :key="item.id" @tap="showmenu(index)">
|
||||
<view class="ciy-list" :class="{del:item._del}" v-for="(item,index) in init.list" :key="item.id" @tap="showmenu(index)">
|
||||
<view class="l0">No: {{item.id}}</view>
|
||||
<view v-if="item.id%2 == 0" class="rt">
|
||||
<view class="code b" :class="ccode(g.auditstatus, item.auditstatus,'clas')">{{ccode(g.auditstatus, item.auditstatus)}}</view>
|
||||
|
|
@ -206,8 +206,8 @@
|
|||
computed: {},
|
||||
methods: {
|
||||
async getlist() {
|
||||
var auth = await this.getauth();
|
||||
if(auth.me.id == 0)
|
||||
//await this.getauth();
|
||||
if(this.me.id == 0)
|
||||
return uni.navigateBack();
|
||||
if (this.pageno < 0)
|
||||
return;
|
||||
|
|
@ -264,14 +264,7 @@
|
|||
_idx: -1
|
||||
}
|
||||
};
|
||||
var app = getApp();
|
||||
app.globalData.ciy_page_init = {
|
||||
...item.data
|
||||
};
|
||||
app.globalData.ciy_page_g = this.g;
|
||||
uni.navigateTo({
|
||||
url: 'demo_edit?id=' + item.data.id,
|
||||
});
|
||||
this.gourl('demo_edit?id=' + item.data.id, 'navigate', item.data, 'demo');
|
||||
},
|
||||
async del(item) {
|
||||
if (await this.askmsg('是否删除?', '删除') != 'ok')
|
||||
|
|
@ -284,7 +277,7 @@
|
|||
});
|
||||
if (retjson.code != 1)
|
||||
return this.alert(retjson.errmsg);
|
||||
this.init.list[item.data._idx]._clas = 'del';
|
||||
this.init.list[item.data._idx]._del = true;
|
||||
setTimeout(() => {
|
||||
this.init.list.splice(item.data._idx, 1);
|
||||
}, 500);
|
||||
|
|
@ -336,6 +329,7 @@
|
|||
items.push({
|
||||
func: 'del',
|
||||
name: '删除',
|
||||
style: 'color:var(--dag5)',
|
||||
data: dat
|
||||
});
|
||||
this.popmenu({
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<view class="txt-center">
|
||||
<text style="color:var(--dag5)">组件上不能添加class、style属性</text>
|
||||
</view>
|
||||
<view style="height:1em;"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -19,10 +22,11 @@
|
|||
<style>
|
||||
.item {
|
||||
margin: 2em;
|
||||
color:var(--txt3);
|
||||
color: var(--txt3);
|
||||
}
|
||||
|
||||
.ok {
|
||||
color:var(--txt9);
|
||||
color: var(--txt9);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -235,9 +239,9 @@
|
|||
ok: true,
|
||||
url: 'comview/textmore',
|
||||
title: '内容部分隐藏/点击显示'
|
||||
// }, {
|
||||
// url: 'comview/collapse',
|
||||
// title: '可折叠面板'
|
||||
// }, {
|
||||
// url: 'comview/collapse',
|
||||
// title: '可折叠面板'
|
||||
}, {
|
||||
url: 'comview/fab',
|
||||
title: '浮动按钮/多个弹出/加号漂浮'
|
||||
|
|
@ -249,6 +253,10 @@
|
|||
ok: true,
|
||||
url: 'comview/ani',
|
||||
title: '简易动画组件'
|
||||
}, {
|
||||
ok: true,
|
||||
url: 'comview/aniheight',
|
||||
title: '高度动画组件'
|
||||
}, {
|
||||
ok: true,
|
||||
url: 'comview/anipop',
|
||||
|
|
@ -278,6 +286,10 @@
|
|||
ok: true,
|
||||
url: 'comview/shownum',
|
||||
title: '数字动效显示'
|
||||
}, {
|
||||
ok: true,
|
||||
url: 'comview/showemoney',
|
||||
title: '金额显示'
|
||||
}, {
|
||||
url: 'comview/qrcode',
|
||||
title: '生成二维码图片'
|
||||
|
|
@ -352,14 +364,14 @@
|
|||
url: 'curd/demo_single',
|
||||
title: '增删改查/选择单页' //搜索、列表、点击直接修改、添加、选择。
|
||||
}, {
|
||||
url: 'curd/prod_list',//prod_info
|
||||
title: '商品列表页/下单页'//顶部筛选/分类导航,商品瀑布列表。商品详情多SKU下单/加购物车。
|
||||
url: 'curd/prod_list', //prod_info
|
||||
title: '商品列表页/下单页' //顶部筛选/分类导航,商品瀑布列表。商品详情多SKU下单/加购物车。
|
||||
}, {
|
||||
url: 'curd/order_list',//order_refund,order_info
|
||||
title: '订单页/退款页/订单详情页'//可接入的C端订单操作。退款申请操作。
|
||||
url: 'curd/order_list', //order_refund,order_info
|
||||
title: '订单页/退款页/订单详情页' //可接入的C端订单操作。退款申请操作。
|
||||
}, {
|
||||
url: 'curd/cart',
|
||||
title: '购物车页'//购物车管理,合并支付,改变SKU/数量。
|
||||
title: '购物车页' //购物车管理,合并支付,改变SKU/数量。
|
||||
}, {
|
||||
url: 'curd/shop_list',
|
||||
title: '店铺采购单页' //类美团,左侧4字分类,右侧单列商品,底部结算。
|
||||
|
|
@ -449,7 +461,7 @@
|
|||
methods: {
|
||||
chgshow(idx) {
|
||||
this.demos[idx].show = !this.demos[idx].show;
|
||||
if(this.demos[idx].show)
|
||||
if (this.demos[idx].show)
|
||||
this.setstorage('_demoindex', idx);
|
||||
},
|
||||
godemo(itm) {
|
||||
|
|
|
|||
|
|
@ -629,7 +629,7 @@
|
|||
特别的,在message下,支持3秒内异步,需自行实现。<br />
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<view class="fun">getstrparam(str, split='&')</view>
|
||||
<view class="fun">getstrparam(str, split='|')</view>
|
||||
<view class="tip">
|
||||
将简易字符串解析成object。<br />
|
||||
一般在系统配置等场景使用。<br />
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
<ciy-header :title="lang('apptitle')"></ciy-header>
|
||||
<view>
|
||||
<view class="ciy-card">
|
||||
<view class="title">
|
||||
<view class="mk"></view>暗黑模式
|
||||
<view class="title mk">
|
||||
暗黑模式
|
||||
</view>
|
||||
<view class="right">this.settheme()</view>
|
||||
<view class="content">
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-caption sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||
<view class="mk"></view>
|
||||
<view class="ciy-caption mk sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||
<view class="title">主标题</view>
|
||||
<view class="sub">小标题小标题小标题小标题小标题</view>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<ciy-shownum speed="80" :value="me.mycashmoney" unit=",100,2|万,1000000,2|亿,10000000000,2"></ciy-shownum>
|
||||
</view>
|
||||
<view class="num" v-else>---</view>
|
||||
<view class="tit">余额</view>
|
||||
<view class="tit" @tap="gourl" data-url="$/pages/main/me_cash">提现</view>
|
||||
</view>
|
||||
|
||||
<view>
|
||||
|
|
@ -66,13 +66,13 @@
|
|||
</view>
|
||||
<view class="maincard" style="min-height:9em;">
|
||||
<view class="ciy-grid">
|
||||
<view class="grid" @tap="gourl" data-url="$/pages/main/me_cash_charge">
|
||||
<view class="grid">
|
||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||||
<view class="name">充值</view>
|
||||
<view class="name">图标名称</view>
|
||||
</view>
|
||||
<view class="grid" @tap="gourl" data-url="$/pages/main/me_cash">
|
||||
<view class="grid">
|
||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||||
<view class="name">提现</view>
|
||||
<view class="name">图标名称</view>
|
||||
</view>
|
||||
<view class="grid">
|
||||
<view class="icon" :style="{backgroundImage:svg2bg(svg.ciy)}"></view>
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
</view>
|
||||
<ciy-swipelist v-if="me.id>0" :icon="svg.ciy" title="实名认证" data-url="$/pages/main/me_real" @tap="gourl" :right="tomsk(me.truename, '#***')" more></ciy-swipelist>
|
||||
<view class="bg5" style="height:0.3em;" v-if="me.id>0"></view>
|
||||
<ciy-swipelist title="收支记录" v-if="me.id>0" @tap="gourl" data-url="$/pages/main/me_cash_ie" more></ciy-swipelist>
|
||||
<ciy-swipelist title="收入明细" v-if="me.id>0" @tap="gourl" data-url="$/pages/main/me_cash_in" more></ciy-swipelist>
|
||||
|
||||
<view class="bg5" style="height:0.3em;"></view>
|
||||
<ciy-swipelist v-if="me.id>0" title="个人信息" @tap="gourl" data-url="$/pages/main/me_info" more></ciy-swipelist>
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
},
|
||||
methods: {
|
||||
async getinit() {
|
||||
await this.getauth();
|
||||
this.getauth();
|
||||
var retjson = this.callajax({
|
||||
func: 'me.usrbuy_get',
|
||||
cache: 86400,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
<template>
|
||||
<ciy-header title="收款银行"></ciy-header>
|
||||
<form @submit="submit" class="char3">
|
||||
<view class="ciy-card">
|
||||
<view class="content char4">
|
||||
<view class="ciy-form">
|
||||
<label class="imp">账户名称</label>
|
||||
<view>
|
||||
<ciy-input name="bankaccount" v-model="me.bankaccount" type="text" bb></ciy-input>
|
||||
</view>
|
||||
<view class="flexnone" style="padding-left:1em" @tap="me.bankaccount=me.truename">
|
||||
{{me.truename}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label class="imp">银行账号</label>
|
||||
<view>
|
||||
<ciy-input name="bankno" v-model="me.bankno" type="text" bb></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label class="imp">开户银行</label>
|
||||
<view>
|
||||
<ciy-input name="bankname" v-model="me.bankname" type="text" bb></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>联行号</label>
|
||||
<view>
|
||||
<ciy-input name="bankcode" v-model="me.bankcode" type="text" bb></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="ciy-tip">实名认证人【{{me.truename}}】
|
||||
<br />姓名与实名不符,需为对公账户。
|
||||
<br />对公账户收款(含提现),需开具发票。
|
||||
<br />个人银行账户收款,平台代缴个税。
|
||||
</view>
|
||||
<view class="ciy-form-bottom">
|
||||
<button class="btn lg cc" form-type="submit">更新收款信息</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</form>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
onLoad() {
|
||||
if (!this.me.truename) {
|
||||
this.alert('请先实名认证').then(() => {
|
||||
uni.redirectTo({
|
||||
url: 'me_real'
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async submit(e) {
|
||||
if (!e.detail.value.bankaccount)
|
||||
return this.toast('请输入账户名称');
|
||||
if (!e.detail.value.bankno)
|
||||
return this.toast('请输入银行账号');
|
||||
if (!e.detail.value.bankname)
|
||||
return this.toast('请输入开户银行');
|
||||
|
||||
this._loading = true;
|
||||
var retjson = await this.callajax({
|
||||
func: 'me.me_bank_info_change',
|
||||
data: e.detail.value
|
||||
});
|
||||
this._loading = false;
|
||||
if (retjson.code != 1)
|
||||
return this.alert(retjson.errmsg);
|
||||
this.me.bankno = e.detail.value.bankno;
|
||||
this.me.bankname = e.detail.value.bankname;
|
||||
this.me.bankaccount = e.detail.value.bankaccount;
|
||||
this.me.bankcode = e.detail.value.bankcode;
|
||||
this.setstorage('me', this.me);
|
||||
await this.toast('修改成功');
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -24,6 +24,12 @@
|
|||
{{init.user.cash}}元
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label>提现流向</label>
|
||||
<view style="text-align: left;">
|
||||
<ciy-selbool name="cashtype" v-model="me.cashtype" y="银行" n="微信"></ciy-selbool>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form-bottom">
|
||||
<button class="btn lg cc" form-type="submit">申请提现</button>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -73,11 +73,14 @@
|
|||
methods: {
|
||||
async getinit() {
|
||||
this.init.charges = [];
|
||||
this.init.charges.push(1000);
|
||||
this.init.charges.push(5000);
|
||||
this.init.charges.push(10000);
|
||||
this.init.charges.push(50000);
|
||||
this.init.charges.push(100000);
|
||||
this.init.charges.push(500000);
|
||||
this.init.code = 1;
|
||||
this.money = this.toint(this.opn.pay);
|
||||
if(this.money > 0)
|
||||
this.paynow();
|
||||
},
|
||||
async paynow(e) {
|
||||
if(this.money <= 0)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
</view>
|
||||
<view v-else>
|
||||
<view class="sti" :style="{top:(header_statusbar_height+header_title_height)+'px'}">
|
||||
<ciy-segment lis="1.收入,2.支出" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
||||
<ciy-segment lis="1:收入,2:支出" all="全部" v-model="liid" @change="segment_change"></ciy-segment>
|
||||
</view>
|
||||
<view class="ciy-list" v-for="(item,index) in init.list" :key="item.id">
|
||||
<view class="l2" style="margin-right: 4em;">{{item.name}}</view>
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@
|
|||
items.push({
|
||||
func: 'del',
|
||||
name: '删除',
|
||||
style: 'color:var(--dag5)',
|
||||
data: dat
|
||||
});
|
||||
this.popmenu({
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@
|
|||
<view class="ciy-tip" v-if="init.data.auditstatus == 20">您已提交申请,等待审核...</view>
|
||||
<view class="ciy-tip" v-if="init.data.auditstatus == 50">您的申请正在审核中...</view>
|
||||
<view class="ciy-tip" v-if="init.data.auditstatus == 100">您已申请通过</view>
|
||||
<view class="ciy-list">
|
||||
<view class="l1">{{init.data.name}}</view>
|
||||
<view class="l1">{{init.data.idid}}</view>
|
||||
<view class="rb">{{todatetime(init.data.addtimes)}} 申请</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else>
|
||||
<view class="ciy-tip" v-if="init.data && init.data.auditmsg">
|
||||
|
|
@ -34,18 +39,18 @@
|
|||
<view class="content">
|
||||
<label>摄像头拍摄身份证正面(人像面),自动识别</label>
|
||||
<view>
|
||||
<ciy-aicameraocr checkidcard="front" mode="idcard" @change="chgidcard"></ciy-aicameraocr>
|
||||
<ciy-aicameraocr ref="cameraocr" checkidcard="front" mode="idcard" @change="chgidcard"></ciy-aicameraocr>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label class="imp">真实姓名</label>
|
||||
<label>实名姓名</label>
|
||||
<view>
|
||||
<ciy-input name="name" ciystyle="width:6em;" :value="name" type="text" bb></ciy-input>
|
||||
<ciy-input name="name" disabled ciystyle="width:6em;" :value="name" type="text" bb></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form">
|
||||
<label class="imp">身份证号</label>
|
||||
<label>身份证号</label>
|
||||
<view>
|
||||
<ciy-input name="idno" :value="idno" type="idcard" bb></ciy-input>
|
||||
<ciy-input name="idno" disabled :value="idno" type="idcard" bb></ciy-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ciy-form-bottom">
|
||||
|
|
@ -54,7 +59,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</form>
|
||||
<ciy-aivoice @change="chgvoice"></ciy-aivoice>
|
||||
<!-- <ciy-aivoice @change="chgvoice"></ciy-aivoice> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -82,14 +87,21 @@
|
|||
this.init = retjson;
|
||||
if (retjson.code != 1)
|
||||
return;
|
||||
if (retjson.data && retjson.data.auditstatus == 100) {
|
||||
if (retjson.data && retjson.data.auditstatus == 100 && !this.me.truename) {
|
||||
this.me.truename = retjson.data.name;
|
||||
this.me.idid = retjson.data.idid;
|
||||
this.setstorage('me', this.me);
|
||||
var app = getApp();
|
||||
var page = app.getpage(1);
|
||||
if (page && page.refreshme)
|
||||
page.refreshme();
|
||||
page.me = this.me;
|
||||
}
|
||||
setTimeout(() => {
|
||||
this.getrefsSync('cameraocr').Step(1);
|
||||
}, 500);
|
||||
},
|
||||
async submit(e) {
|
||||
// e.detail.value.name = '张东';
|
||||
// e.detail.value.idno = '152304200111157127';
|
||||
if (e.detail.value.name.length < 1)
|
||||
return this.toast('请输入姓名');
|
||||
if (e.detail.value.idno.length < 10)
|
||||
|
|
@ -114,6 +126,7 @@
|
|||
uni.navigateBack();
|
||||
},
|
||||
async chgidcard(e) {
|
||||
console.log(e);
|
||||
this.idimg = e.tempimg;
|
||||
if (this._loading)
|
||||
return this.toast('请稍后再试');
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@
|
|||
items.push({
|
||||
func: 'del',
|
||||
name: '删除',
|
||||
style: 'color:var(--dag5)',
|
||||
data: dat
|
||||
});
|
||||
this.popmenu({
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
=================================================================================
|
||||
* License: GPL-2.0 license
|
||||
* Author: 众产® https://ciy.cn/code
|
||||
* Version: 0.1.15
|
||||
* Version: 0.1.16
|
||||
=================================================================================
|
||||
app函数库
|
||||
* alert (await)默认alert
|
||||
|
|
@ -82,12 +82,14 @@ page函数库
|
|||
* inputmsg (await)输入弹出框
|
||||
* sleep (await)延迟毫秒
|
||||
* load_ciydict (await)获取远程静态dict
|
||||
* load_svgicon (await)获取远程静态svgicon
|
||||
|
||||
* shareparam 分享链接转换
|
||||
* getstrparam 解析简易参数
|
||||
* urlparam 解析url
|
||||
* arrayfind 从数组中匹配值。返回index
|
||||
* objdeepmerge object合并,自动避开静态字典,自动处理带id数组
|
||||
* objtolist 将object并入list数组
|
||||
* objclone 深度复制obj
|
||||
* str2date 字符串转Date
|
||||
* bin2hex bin转hex字符串
|
||||
|
|
@ -116,6 +118,7 @@ page默认数据
|
|||
* opn 页面urlget参数
|
||||
* me 用户状态
|
||||
* g 用户及字典数据引用
|
||||
* pagedata 页面间数据传递 替代vuex\Pinia
|
||||
* jsnurl 指向动态服务器(多个)。默认t
|
||||
* header_* 页面边角尺寸
|
||||
* footer_* 页面边角尺寸
|
||||
|
|
@ -159,7 +162,7 @@ export default {
|
|||
var sys = uni.getSystemInfoSync();
|
||||
// #endif
|
||||
app.globalData._sysinfo = sys;
|
||||
|
||||
app.globalData.ciy_page_data = {};
|
||||
app.globalData._header_statusbar_height = sys.statusBarHeight;
|
||||
if (sys.safeAreaInsets)
|
||||
app.globalData._footer_safe_height = sys.safeAreaInsets.bottom;
|
||||
|
|
@ -343,12 +346,15 @@ export default {
|
|||
}, 500);
|
||||
}
|
||||
var header = {};
|
||||
header[app.globalData.tokenfield] = app.getstorage("_" + app.globalData.tokenfield);
|
||||
if (opt.data)
|
||||
opt.data._pf = 'MB';
|
||||
header['ciyauth'] = app.getstorage("_" + app.globalData.tokenfield);
|
||||
opt.data = opt.data || {};
|
||||
opt.data._pf = 'MB';
|
||||
if (opt.pagethis)
|
||||
opt.data = Object.assign({}, opt.pagethis.opn, opt.data);
|
||||
uni.request({
|
||||
url: url,
|
||||
data: opt.data,
|
||||
withCredentials: true,
|
||||
dataType: 'text',
|
||||
method: opt.data ? 'POST' : 'GET',
|
||||
header: header,
|
||||
|
|
@ -385,6 +391,22 @@ export default {
|
|||
errmsg: '返回JSON错误:' + res.statusCode
|
||||
});
|
||||
}
|
||||
var dictversion = res.header[app.globalData.tokenfield + 're'];
|
||||
if (dictversion) {
|
||||
console.log('restorage new', dictversion);
|
||||
app.globalData._restorage = true; //通知app.vue自动刷新
|
||||
}
|
||||
var newauth = '';
|
||||
for (var i in res.header) {
|
||||
if (i.toLowerCase() == '_ciyauth')
|
||||
newauth = res.header[i];
|
||||
}
|
||||
if (!newauth)
|
||||
newauth = json['_ciyauth'];
|
||||
if (newauth) {
|
||||
console.log('newauth new', newauth);
|
||||
app.setstorage('_' + app.globalData.tokenfield, newauth);
|
||||
}
|
||||
if (json.code != 1) {
|
||||
if (json.code == 2) {
|
||||
app.removestorage('me');
|
||||
|
|
@ -392,27 +414,13 @@ export default {
|
|||
if (pg.isPage)
|
||||
pg.getauth();
|
||||
return reject({
|
||||
errmsg: '请重新登录'
|
||||
errmsg: ''
|
||||
});
|
||||
} else {
|
||||
return reject(json);
|
||||
}
|
||||
}
|
||||
try {
|
||||
var dictversion = res.header[app.globalData.tokenfield + 're'];
|
||||
if (dictversion) {
|
||||
console.log('restorage new', dictversion);
|
||||
app.globalData._restorage = true; //通知app.vue自动刷新
|
||||
}
|
||||
var newauth = '';
|
||||
for (var i in res.header) {
|
||||
if (i.toLowerCase() == app.globalData.tokenfield)
|
||||
newauth = res.header[i];
|
||||
}
|
||||
if (newauth) {
|
||||
console.log('newauth new', newauth);
|
||||
app.setstorage('_' + app.globalData.tokenfield, newauth);
|
||||
}
|
||||
//delete json.code;
|
||||
if (opt.cache > 0) {
|
||||
app.setstorage(opt.cachekey, {
|
||||
|
|
@ -488,6 +496,8 @@ export default {
|
|||
cs.extdata = arr[code][d].extdata;
|
||||
if (arr[code][d].clas)
|
||||
cs.clas = arr[code][d].clas;
|
||||
if (arr[code][d].isuse != 1)
|
||||
cs.isuse = arr[code][d].isuse;
|
||||
if (arr[code][d].upid > 0) {
|
||||
for (var i in arr[code]) {
|
||||
if (arr[code][d].upid == arr[code][i].id) {
|
||||
|
|
@ -749,6 +759,7 @@ export default {
|
|||
header_title_margin: 0, //顶部标题栏左右留白(正好躲过胶囊,且可使文字居中)
|
||||
footer_safe_height: 0, //底部安全高度(躲过刘海屏、底部横线等)
|
||||
pageclass: 'dark',
|
||||
pagedata: {}, //外部g.page_init
|
||||
sysinfo: {},
|
||||
version: '',
|
||||
isPage: false,
|
||||
|
|
@ -789,16 +800,17 @@ export default {
|
|||
if (upid > 0)
|
||||
this.setstorage('upid', upid);
|
||||
this.pagepost = { //page快捷检索post值
|
||||
query: {},
|
||||
...this.opn
|
||||
query: {}
|
||||
};
|
||||
this.header_statusbar_height = app.globalData._header_statusbar_height;
|
||||
this.header_title_height = app.globalData._header_title_height;
|
||||
this.header_title_margin = app.globalData._header_title_margin;
|
||||
this.footer_safe_height = app.globalData._footer_safe_height;
|
||||
this.pagedata = app.globalData.ciy_page_data;
|
||||
this.version = app.globalData._version;
|
||||
this.sysinfo = app.globalData._sysinfo;
|
||||
this.jsnurl = app.globalData.jsnurl;
|
||||
//this.constant = {maxtimes: 9999999999999};
|
||||
this.me = this.getme();
|
||||
if (app.globalData.ciy_page_g)
|
||||
this.g = app.globalData.ciy_page_g;
|
||||
|
|
@ -902,16 +914,23 @@ export default {
|
|||
return str;
|
||||
},
|
||||
|
||||
async gourl(b, type, initdata) { //url支持 http[web]、![原型]、*[alert提示]、$[需登录常规url]、常规url
|
||||
async gourl(b, type, initdata, initkey) { //url支持 http[web]、![原型]、*[alert提示]、$[需登录常规url]、常规url
|
||||
var url = '';
|
||||
if (typeof(b) != 'string') {
|
||||
url = b.currentTarget.dataset.url;
|
||||
if (!initdata) {
|
||||
initdata = b.currentTarget.dataset.initdata;
|
||||
initdata = b.currentTarget.dataset.init;
|
||||
}
|
||||
if (!initkey) {
|
||||
initkey = b.currentTarget.dataset.key;
|
||||
}
|
||||
} else {
|
||||
url = b;
|
||||
}
|
||||
if (!initdata)
|
||||
initdata = {};
|
||||
if (!initkey)
|
||||
initkey = 'base';
|
||||
if (!url)
|
||||
return console.warn('gourl传参错误:' + url);
|
||||
var app = getApp();
|
||||
|
|
@ -935,9 +954,11 @@ export default {
|
|||
if (auth.me.id == 0)
|
||||
return;
|
||||
}
|
||||
if (initdata)
|
||||
app.globalData.ciy_page_init = initdata;
|
||||
app.globalData.ciy_page_g = this.g;
|
||||
app.globalData.ciy_page_data[initkey] = {
|
||||
...initdata
|
||||
};
|
||||
if (this.isPage)
|
||||
app.globalData.ciy_page_g = this.g;
|
||||
if (type == 'redirect') {
|
||||
uni.redirectTo({
|
||||
url: url,
|
||||
|
|
@ -972,7 +993,7 @@ export default {
|
|||
goweb(url, name) {
|
||||
var app = getApp();
|
||||
url += (url.indexOf('?') == -1) ? '?' : '&';
|
||||
url += '_' + app.globalData.tokenfield + '=' + app.getstorage('_' + app.globalData.tokenfield);
|
||||
url += '_ciyauth=' + app.getstorage('_' + app.globalData.tokenfield);
|
||||
uni.navigateTo({
|
||||
url: '/pages/pub/web?web=' + encodeURIComponent(url) + (name ? '&name=' + name : ''),
|
||||
animationType: 'pop-in',
|
||||
|
|
@ -1129,7 +1150,7 @@ export default {
|
|||
if (key == 'step') {
|
||||
val.duration = this.toint(val.duration);
|
||||
if (val.duration < 16)
|
||||
val.duration = 16;
|
||||
val.duration = 100;
|
||||
animation.step(val);
|
||||
cb(animation.export());
|
||||
await this.sleep(val.duration);
|
||||
|
|
@ -1372,6 +1393,8 @@ export default {
|
|||
return '.' + m2;
|
||||
},
|
||||
tocciy(cciy) {
|
||||
if (!cciy)
|
||||
return '';
|
||||
var hex = cciy.toString(16).toUpperCase();
|
||||
hex = hex.substring(hex.length - 12);
|
||||
hex = hex.replace(/^0+/, '');
|
||||
|
|
@ -1518,6 +1541,7 @@ export default {
|
|||
if (!ori)
|
||||
return '';
|
||||
var retstr = '';
|
||||
ori = ori + '';
|
||||
if (ori.length > pstr.length) {
|
||||
retstr = ori.substring(0, ori.length - pstr.length);
|
||||
ori = ori.substring(ori.length - pstr.length);
|
||||
|
|
@ -1796,7 +1820,7 @@ export default {
|
|||
if (item.data)
|
||||
this.gourl(item.url, item.type, {
|
||||
...item.data
|
||||
});
|
||||
}, item.key);
|
||||
else
|
||||
this.gourl(item.url, item.type);
|
||||
return;
|
||||
|
|
@ -1948,7 +1972,42 @@ export default {
|
|||
return e; //不返回,res为 undefined
|
||||
});
|
||||
},
|
||||
|
||||
async load_svgicon(url) {
|
||||
if (url.indexOf('.local.') === -1)
|
||||
url = url.replace('http://', 'https://');
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
dataType: 'text',
|
||||
method: 'GET',
|
||||
fail: res => {
|
||||
res._url = url;
|
||||
this.uperr("h5.loadsvgicon.fail", res);
|
||||
return reject({
|
||||
errmsg: 'dict' + res.errMsg
|
||||
});
|
||||
},
|
||||
success: res => {
|
||||
var ind = res.data.indexOf(':');
|
||||
if (ind == -1)
|
||||
return reject({
|
||||
errmsg: 'svgicon数据缺少合规图标'
|
||||
});
|
||||
var lines = res.data.split('\n');
|
||||
var svgs = {};
|
||||
for (var i in lines) {
|
||||
var idx = lines[i].indexOf(':');
|
||||
if (idx == -1)
|
||||
continue;
|
||||
svgs[lines[i].substring(0, idx)] = lines[i].substring(idx + 1);
|
||||
}
|
||||
return resolve(svgs);
|
||||
}
|
||||
});
|
||||
}).catch(e => {
|
||||
return e; //不返回,res为 undefined
|
||||
});
|
||||
},
|
||||
shareparam(opn) {
|
||||
var app = getApp();
|
||||
var param = {};
|
||||
|
|
@ -1977,7 +2036,7 @@ export default {
|
|||
return param;
|
||||
},
|
||||
getstrparam(str, split) {
|
||||
split = split || '&';
|
||||
split = split || '|';
|
||||
var strs = str.split(split);
|
||||
var ret = {};
|
||||
for (var i in strs) {
|
||||
|
|
@ -2053,6 +2112,19 @@ export default {
|
|||
delete src.errmsg;
|
||||
return src;
|
||||
},
|
||||
objtolist(list, data) {
|
||||
if (!list || !data)
|
||||
return;
|
||||
if (!this.isarray(list))
|
||||
return;
|
||||
if (!this.isobject(data))
|
||||
return;
|
||||
let idx = this.arrayfind(list, data.id, 'id');
|
||||
if (idx == -1)
|
||||
list.unshift(data);
|
||||
else
|
||||
list[idx] = this.objdeepmerge(list[idx], data);
|
||||
},
|
||||
objclone(obj) {
|
||||
if (obj instanceof Date) {
|
||||
return new Date(obj.getTime());
|
||||
|
|
@ -2470,8 +2542,7 @@ export default {
|
|||
1024) + 'KB', gf);
|
||||
var app = getApp();
|
||||
var header = {};
|
||||
header[app.globalData.tokenfield] = app.getstorage("_" + app.globalData
|
||||
.tokenfield);
|
||||
header['ciyauth'] = app.getstorage("_" + app.globalData.tokenfield);
|
||||
var filepath = gf.tempFilePath || gf.tempImagePath || gf.path;
|
||||
var now = new Date();
|
||||
var fext = this.file_ext(gf.name);
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@
|
|||
"query.btn_reset":"Reset",
|
||||
"query.btn_close":"Close",
|
||||
|
||||
"page.btn_pub":"Publish",
|
||||
"page.btn_edit":"Edit",
|
||||
"page.btn_submit":"Submit",
|
||||
"page.btn_refresh":"Refresh",
|
||||
"page.loading":"Loading",
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@
|
|||
"query.btn_reset": "Réinitialiser",
|
||||
"query.btn_close": "Fermer",
|
||||
|
||||
"page.btn_pub":"Publier",
|
||||
"page.btn_edit":"Éditer",
|
||||
"page.btn_submit": "Soumettre",
|
||||
"page.btn_refresh": "Actualiser",
|
||||
"page.loading": "Chargement",
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
"query.btn_reset":"リセット",
|
||||
"query.btn_close":"閉じる",
|
||||
|
||||
"page.btn_pub":"公開",
|
||||
"page.btn_edit":"編集",
|
||||
"page.btn_submit":"送信",
|
||||
"page.btn_refresh":"リフレッシュ",
|
||||
"page.loading":"ロード中",
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
"query.btn_close":"关闭",
|
||||
|
||||
"page.btn_pub":"发布",
|
||||
"page.btn_edit":"修改",
|
||||
"page.btn_submit":"提交",
|
||||
"page.btn_refresh":"刷新",
|
||||
"page.loading":"加载中",
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
"query.btn_reset":"重置",
|
||||
"query.btn_close":"關閉",
|
||||
|
||||
"page.btn_pub":"發佈",
|
||||
"page.btn_edit":"編輯",
|
||||
"page.btn_submit":"提交",
|
||||
"page.btn_refresh":"刷新",
|
||||
"page.loading":"載入中",
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ body,
|
|||
view,
|
||||
text {
|
||||
box-sizing: border-box;
|
||||
font-size-adjust: ex-height 0.53;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
|
|
@ -252,23 +253,6 @@ text {
|
|||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.ciy-list .title {
|
||||
position: relative;
|
||||
color: var(--txt9);
|
||||
font-weight: bold;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.ciy-list .title::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -1em;
|
||||
width: 0.5em;
|
||||
height: 1.5em;
|
||||
border-radius: 5px;
|
||||
background: linear-gradient(-60deg, var(--man4), var(--man7));
|
||||
}
|
||||
|
||||
.ciy-list .l0 {
|
||||
font-size: 0.8em;
|
||||
padding-right: 6em;
|
||||
|
|
@ -283,6 +267,7 @@ text {
|
|||
.ciy-list .l2 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.5em 0;
|
||||
}
|
||||
|
||||
.ciy-list .l2>label {
|
||||
|
|
@ -353,7 +338,7 @@ text {
|
|||
right: 1em;
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
opacity: 0.6;
|
||||
opacity: 0.95;
|
||||
z-index: 10;
|
||||
border-radius: 2em;
|
||||
background: linear-gradient(90deg, #8568f7, #4981ff);
|
||||
|
|
@ -463,16 +448,8 @@ text {
|
|||
width: 80%;
|
||||
}
|
||||
|
||||
.btn.dis {
|
||||
border: 1px solid var(--bg6);
|
||||
background: var(--bg1) !important;
|
||||
color: var(--bg5);
|
||||
}
|
||||
|
||||
.btn.dis:active {
|
||||
background: var(--bg1) !important;
|
||||
color: var(--txt9) !important;
|
||||
border: 1px solid var(--bg9);
|
||||
.btn[disabled] {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.btn.def {
|
||||
|
|
@ -513,11 +490,6 @@ text {
|
|||
color: var(--txt8);
|
||||
}
|
||||
|
||||
.ciy-tip>view,
|
||||
.ciy-tip>div {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/*断行*/
|
||||
.ciy-height {
|
||||
height: 0.3em;
|
||||
|
|
@ -547,11 +519,11 @@ text {
|
|||
padding-bottom: 0.2em;
|
||||
}
|
||||
|
||||
.ciy-grid .grid3 {
|
||||
.ciy-grid.grid3 .grid {
|
||||
width: 33.3%;
|
||||
}
|
||||
|
||||
.ciy-grid .grid5 {
|
||||
.ciy-grid.grid5 .grid {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
|
|
@ -585,6 +557,38 @@ text {
|
|||
}
|
||||
|
||||
/*标题分隔*/
|
||||
.ciy-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.8em 1em;
|
||||
font-size: 1.1em;
|
||||
position: relative;
|
||||
font-weight: bolder;
|
||||
color: var(--txt9);
|
||||
}
|
||||
|
||||
.ciy-title.mk::before {
|
||||
content: "";
|
||||
width: 0.4em;
|
||||
height: 1.5em;
|
||||
margin-right: 0.3em;
|
||||
border-radius: 0.3em;
|
||||
vertical-align: middle;
|
||||
background: linear-gradient(-60deg, var(--man4), var(--man7));
|
||||
}
|
||||
|
||||
|
||||
.ciy-title .title {
|
||||
flex: 1;
|
||||
color: var(--txt9);
|
||||
}
|
||||
|
||||
.ciy-title .right {
|
||||
font-size: 0.9em;
|
||||
font-weight: normal;
|
||||
color: var(--txt5);
|
||||
}
|
||||
|
||||
.ciy-caption {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -598,7 +602,8 @@ text {
|
|||
border-bottom: 1px solid var(--bg6);
|
||||
}
|
||||
|
||||
.ciy-caption .mk {
|
||||
.ciy-caption.mk::before {
|
||||
content: "";
|
||||
width: 0.3em;
|
||||
height: 1.5em;
|
||||
margin-right: 0.3em;
|
||||
|
|
@ -646,7 +651,8 @@ text {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ciy-card>.title .mk {
|
||||
.ciy-card>.title.mk::before {
|
||||
content: "";
|
||||
width: 0.2em;
|
||||
display: inline-block;
|
||||
border-radius: 0.2em;
|
||||
|
|
@ -873,40 +879,33 @@ text {
|
|||
.md-h1 {
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
margin: 0 0.3em;
|
||||
margin-left: 0.3em;
|
||||
line-height: 1.5em;
|
||||
text-align: left;
|
||||
padding: 0.5em;
|
||||
padding: 0.5em 0 0.5em 0.5em;
|
||||
}
|
||||
|
||||
.md-h2 {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
margin: 0 0.4em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1.8em;
|
||||
padding: 0.5em;
|
||||
padding: 0.5em 0 0.5em 0.5em;
|
||||
}
|
||||
|
||||
.md-h3 {
|
||||
.md-h3,
|
||||
.md-h4,
|
||||
.md-h5 {
|
||||
font-weight: bold;
|
||||
font-size: 1em;
|
||||
margin: 0 1.5em;
|
||||
margin-left: 0.5em;
|
||||
line-height: 1.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.md-h4 {
|
||||
font-weight: bold;
|
||||
font-size: 1em;
|
||||
margin: 0 2em;
|
||||
line-height: 1.5em;
|
||||
padding: 0.5em;
|
||||
padding: 0.5em 0 0.5em 0.5em;
|
||||
}
|
||||
|
||||
.md-content {
|
||||
font-size: 1em;
|
||||
text-indent: 1em;
|
||||
padding: 0.3em 1em;
|
||||
line-height: 2em;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
|
@ -924,47 +923,43 @@ text {
|
|||
border-radius: 0.2em;
|
||||
}
|
||||
|
||||
.txt-smmm {
|
||||
.txt-smmm.txt-smmm.txt-smmm {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.txt-smm {
|
||||
.txt-smm.txt-smm.txt-smm {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.txt-sm {
|
||||
.txt-sm.txt-sm.txt-sm {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.txt-lg {
|
||||
.txt-lg.txt-lg.txt-lg {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.txt-lgg {
|
||||
.txt-lgg.txt-lgg.txt-lgg {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.txt-lggg {
|
||||
.txt-lggg.txt-lggg.txt-lggg {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.txt-lgggg {
|
||||
.txt-lgggg.txt-lgggg.txt-lgggg {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.txt-wb {
|
||||
.txt-wb.txt-wb.txt-wb {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.txt-wl {
|
||||
.txt-wl.txt-wl.txt-wl {
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.txt-un {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.txt-un-hover:hover {
|
||||
.txt-un.txt-un.txt-un {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
|
@ -994,75 +989,75 @@ text {
|
|||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.txt1 {
|
||||
.txt1.txt1.txt1 {
|
||||
color: var(--txt1);
|
||||
}
|
||||
|
||||
.txt2 {
|
||||
.txt2.txt2.txt2 {
|
||||
color: var(--txt2);
|
||||
}
|
||||
|
||||
.txt3 {
|
||||
.txt3.txt3.txt3 {
|
||||
color: var(--txt3);
|
||||
}
|
||||
|
||||
.txt4 {
|
||||
.txt4.txt4.txt4 {
|
||||
color: var(--txt4);
|
||||
}
|
||||
|
||||
.txt5 {
|
||||
.txt5.txt5.txt5 {
|
||||
color: var(--txt5);
|
||||
}
|
||||
|
||||
.txt6 {
|
||||
.txt6.txt6.txt6 {
|
||||
color: var(--txt6);
|
||||
}
|
||||
|
||||
.txt7 {
|
||||
.txt7.txt7.txt7 {
|
||||
color: var(--txt7);
|
||||
}
|
||||
|
||||
.txt8 {
|
||||
.txt8.txt8.txt8 {
|
||||
color: var(--txt8);
|
||||
}
|
||||
|
||||
.txt9 {
|
||||
.txt9.txt9.txt9 {
|
||||
color: var(--txt9);
|
||||
}
|
||||
|
||||
.bg1 {
|
||||
.bg1.bg1.bg1 {
|
||||
background-color: var(--bg1);
|
||||
}
|
||||
|
||||
.bg2 {
|
||||
.bg2.bg2.bg2 {
|
||||
background-color: var(--bg2);
|
||||
}
|
||||
|
||||
.bg3 {
|
||||
.bg3.bg3.bg3 {
|
||||
background-color: var(--bg3);
|
||||
}
|
||||
|
||||
.bg4 {
|
||||
.bg4.bg4.bg4 {
|
||||
background-color: var(--bg4);
|
||||
}
|
||||
|
||||
.bg5 {
|
||||
.bg5.bg5.bg5 {
|
||||
background-color: var(--bg5);
|
||||
}
|
||||
|
||||
.bg6 {
|
||||
.bg6.bg6.bg6 {
|
||||
background-color: var(--bg6);
|
||||
}
|
||||
|
||||
.bg7 {
|
||||
.bg7.bg7.bg7 {
|
||||
background-color: var(--bg7);
|
||||
}
|
||||
|
||||
.bg8 {
|
||||
.bg8.bg8.bg8 {
|
||||
background-color: var(--bg8);
|
||||
}
|
||||
|
||||
.bg9 {
|
||||
.bg9.bg9.bg9 {
|
||||
background-color: var(--bg9);
|
||||
}
|
||||
|
||||
|
|
@ -1106,215 +1101,188 @@ text {
|
|||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.mx1 {
|
||||
.mx0.mx0.mx0 {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.mx1.mx1.mx1 {
|
||||
margin-left: 0.25rem;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.mx2 {
|
||||
.mx2.mx2.mx2 {
|
||||
margin-left: 0.5rem;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.mx3 {
|
||||
.mx3.mx3.mx3 {
|
||||
margin-left: 0.75rem;
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
|
||||
.mx4 {
|
||||
.mx4.mx4.mx4 {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.my1 {
|
||||
.my0.my0.my0 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.my1.my1.my1 {
|
||||
margin-top: 0.25rem;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.my2 {
|
||||
.my2.my2.my2 {
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.my3 {
|
||||
.my3.my3.my3 {
|
||||
margin-top: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.my4 {
|
||||
.my4.my4.my4 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.r1 {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.r2 {
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.r3 {
|
||||
border-radius: 0.75rem;
|
||||
}
|
||||
|
||||
.r4 {
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
.r5 {
|
||||
border-radius: 2rem;
|
||||
}
|
||||
|
||||
.block.block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.flex {
|
||||
.flex.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flexcol {
|
||||
.flexcol.flexcol {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flex1 {
|
||||
.flex1.flex1 {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.flexnone {
|
||||
.flexnone.flexnone {
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
.flex-center.flex-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-top {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.flex-wrap {
|
||||
.flex-wrap.flex-wrap {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.auto-w {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.auto-wmin {
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
.hide {
|
||||
.hide.hide.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.noselect {
|
||||
.noselect.noselect.noselect {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.tran5 {
|
||||
.tran5.tran5.tran5 {
|
||||
transition: all .5s;
|
||||
-webkit-transition: all .5s;
|
||||
}
|
||||
|
||||
.tran1 {
|
||||
transition: all 1s;
|
||||
-webkit-transition: all 1s;
|
||||
}
|
||||
|
||||
.sta {
|
||||
.sta.sta.sta {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.abs {
|
||||
.abs.abs.abs {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.fix {
|
||||
.fix.fix.fix {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.rel {
|
||||
.rel.rel.rel {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sti {
|
||||
.sti.sti.sti {
|
||||
position: sticky;
|
||||
z-index: 40;
|
||||
}
|
||||
|
||||
.t0 {
|
||||
.t0.t0.t0 {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.l0 {
|
||||
.l0.l0.l0 {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.r0 {
|
||||
.r0.r0.r0 {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.b0 {
|
||||
.b0.b0.b0 {
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.t1 {
|
||||
.t1.t1.t1 {
|
||||
top: 0.5em;
|
||||
}
|
||||
|
||||
.l1 {
|
||||
.l1.l1.l1 {
|
||||
left: 0.5em;
|
||||
}
|
||||
|
||||
.r1 {
|
||||
.r1.r1.r1 {
|
||||
right: 0.5em;
|
||||
}
|
||||
|
||||
.b1 {
|
||||
.b1.b1.b1 {
|
||||
bottom: 0.5em;
|
||||
}
|
||||
|
||||
.t2 {
|
||||
.t2.t2.t2 {
|
||||
top: 1em;
|
||||
}
|
||||
|
||||
.l2 {
|
||||
.l2.l2.l2 {
|
||||
left: 1em;
|
||||
}
|
||||
|
||||
.r2 {
|
||||
.r2.r2.r2 {
|
||||
right: 1em;
|
||||
}
|
||||
|
||||
.b2 {
|
||||
.b2.b2.b2 {
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
.lh1 {
|
||||
.lh1.lh1.lh1 {
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.lh2 {
|
||||
.lh2.lh2.lh2 {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.lh3 {
|
||||
.lh3.lh3.lh3 {
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
.lh4 {
|
||||
.lh4.lh4.lh4 {
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
||||
.ti1 {
|
||||
.ti1.ti1.ti1 {
|
||||
text-indent: 1em;
|
||||
}
|
||||
|
||||
.ti2 {
|
||||
.ti2.ti2.ti2 {
|
||||
text-indent: 2em;
|
||||
}
|
||||
|
|
@ -2,7 +2,6 @@ import {
|
|||
defineConfig
|
||||
} from 'vite'
|
||||
import uni from '@dcloudio/vite-plugin-uni'
|
||||
|
||||
// @yck-web/vite-plugin-template-inset
|
||||
const htmlPlugin_ciy = () => {
|
||||
return {
|
||||
|
|
@ -30,8 +29,7 @@ const htmlPlugin_ciy = () => {
|
|||
export default defineConfig({
|
||||
plugins: [htmlPlugin_ciy(), uni()],
|
||||
resolve: {
|
||||
alias: {
|
||||
},
|
||||
alias: {},
|
||||
},
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
xcopy ciydao\components ciyon_ap\components /s /y /v
|
||||
xcopy ciydao\components\ciy* ciyon_ap\components /s /y /v
|
||||
xcopy ciydao\pages\demo ciyon_ap\pages\demo /s /y /v
|
||||
xcopy ciydao\pages\main ciyon_ap\pages\main /s /y /v
|
||||
xcopy ciydao\pages\pub ciyon_ap\pages\pub /s /y /v
|
||||
xcopy ciydao\util ciyon_ap\util /s /y /v
|
||||
xcopy ciydao\main.js ciyon_ap\main.js /s /y /v
|
||||
xcopy ciydao\vite.config.js ciyon_ap\vite.config.js /s /y /v
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user