diff --git a/fapp/ciyon_ap/App.vue b/fapp/ciyon_ap/App.vue
index 357dd14..338c809 100644
--- a/fapp/ciyon_ap/App.vue
+++ b/fapp/ciyon_ap/App.vue
@@ -66,7 +66,7 @@
app.globalData.storselect = '/';
app.globalData.storlist = {
'/': 'https://ciyon.ciy.cn/ud/',
- 'A': 'https://cf5.xinquanyou.cn/ud/'
+ 'A': 'https://cf5.nyyzsoft.cn/ud/'
};
app.globalData.stortransfer = ['/'];
@@ -82,7 +82,7 @@
setInterval(() => {
if (app.globalData._restorage) {
- app.callajax({
+ app.callfunc({
func: 'login.restorage',
data: {},
loadhide: true,
@@ -107,7 +107,7 @@
}
app.globalData._restorage = false;
if (app.globalData.errdata.length > 0) {
- app.callajax({
+ app.callfunc({
func: 'login.uperr',
data: {
meid: app.getme().id,
@@ -126,7 +126,7 @@
//lopn 结合me,将数据上传到平台
function getnewnotice() {
return;
- app.callajax({
+ app.callfunc({
func: 'me.notice_new',
showload: false,
success: json => {
@@ -141,6 +141,8 @@
//#ifdef MP-WEIXIN
const accountInfo = uni.getAccountInfoSync();
+ app.globalData._wxappid = accountInfo.miniProgram.appId;
+ app.globalData._wxenv = accountInfo.miniProgram.envVersion;
app.globalData._version = accountInfo.miniProgram.version;
if (!app.globalData._version)
app.globalData._version = accountInfo.miniProgram.envVersion;
diff --git a/fapp/ciyon_ap/components/ciy-aivoice/ciy-aivoice.vue b/fapp/ciyon_ap/components/ciy-aivoice/ciy-aivoice.vue
index 813163d..b97333b 100644
--- a/fapp/ciyon_ap/components/ciy-aivoice/ciy-aivoice.vue
+++ b/fapp/ciyon_ap/components/ciy-aivoice/ciy-aivoice.vue
@@ -1,5 +1,5 @@
-
+
{{txt}}
@@ -16,6 +16,7 @@
},
data() {
return {
+ benable: true,
bst: false,
txt: '',
deg: 0, //150 红
@@ -26,36 +27,40 @@
computed: {},
mounted() {
var app = getApp();
- app.globalData.plugin_wechatsi_manager.onStop = res => {
- this.$emit('change', {
- txt: res.result,
- data: res
- });
- this.getrefsSync('ani', this).Doani('op0|op1,200');
- this.txt = res.result;
- if (this._t)
- clearTimeout(this._t);
- this._t = setTimeout(() => {
- this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
- }, 5000);
+ if (app.globalData.plugin_wechatsi_manager) {
+ app.globalData.plugin_wechatsi_manager.onStop = res => {
+ this.$emit('change', {
+ txt: res.result,
+ data: res
+ });
+ this.getrefsSync('ani', this).Doani('op0|op1,200');
+ this.txt = res.result;
+ if (this._t)
+ clearTimeout(this._t);
+ this._t = setTimeout(() => {
+ this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
+ }, 5000);
+ }
+ app.globalData.plugin_wechatsi_manager.onStart = res => {
+ console.log("成功开始录音识别", res)
+ }
+ app.globalData.plugin_wechatsi_manager.onError = res => {
+ clearInterval(this._an);
+ this.deg = 150; //红
+ console.error("error msg", res.msg)
+ }
+ this._an = setInterval(() => {
+ this.deg += 10;
+ }, 100);
+ } else {
+ this.benable = false;
}
- app.globalData.plugin_wechatsi_manager.onStart = res => {
- console.log("成功开始录音识别", res)
- }
- app.globalData.plugin_wechatsi_manager.onError = res => {
- clearInterval(this._an);
- this.deg = 150; //红
- console.error("error msg", res.msg)
- }
- this._an = setInterval(() => {
- this.deg += 10;
- }, 100);
},
unmounted() {
clearInterval(this._an);
},
methods: {
- test(){
+ test() {
this.getrefsSync('ani', this).Doani('op0|op1,200');
this.txt = 'res.result';
if (this._t)
@@ -63,7 +68,7 @@
this._t = setTimeout(() => {
this.getrefsSync('ani', this).Doani('op1|op0,sa1.5,300|hide');
}, 5000);
-
+
},
start() {
this.bst = true;
@@ -82,12 +87,6 @@
+
+
\ No newline at end of file
diff --git a/fapp/ciyon_ap/components/ciy-dialog/ciy-dialog.vue b/fapp/ciyon_ap/components/ciy-dialog/ciy-dialog.vue
index b861785..c21db73 100644
--- a/fapp/ciyon_ap/components/ciy-dialog/ciy-dialog.vue
+++ b/fapp/ciyon_ap/components/ciy-dialog/ciy-dialog.vue
@@ -2,7 +2,7 @@
{{title}}
-
+
diff --git a/fapp/ciyon_ap/components/ciy-inputnumber/ciy-inputnumber.vue b/fapp/ciyon_ap/components/ciy-inputnumber/ciy-inputnumber.vue
index 4ebf329..50ecc66 100644
--- a/fapp/ciyon_ap/components/ciy-inputnumber/ciy-inputnumber.vue
+++ b/fapp/ciyon_ap/components/ciy-inputnumber/ciy-inputnumber.vue
@@ -134,11 +134,11 @@
._btn {
background: linear-gradient(100deg, var(--bg4), var(--bg6));
- width: 2rem;
- height: 2rem;
- font-size: 1.5rem;
+ width: 1.5rem;
+ height: 1.5rem;
+ font-size: 1rem;
text-align: center;
- line-height: 2rem;
+ line-height: 1.5rem;
border-radius: 0.3em;
}
diff --git a/fapp/ciyon_ap/components/ciy-markdown/ciy-markdown.vue b/fapp/ciyon_ap/components/ciy-markdown/ciy-markdown.vue
index 1a0f8dc..4935327 100644
--- a/fapp/ciyon_ap/components/ciy-markdown/ciy-markdown.vue
+++ b/fapp/ciyon_ap/components/ciy-markdown/ciy-markdown.vue
@@ -9,7 +9,7 @@
-
+
diff --git a/fapp/ciyon_ap/components/ciy-radio/ciy-radio.vue b/fapp/ciyon_ap/components/ciy-radio/ciy-radio.vue
index cccf271..2552b9f 100644
--- a/fapp/ciyon_ap/components/ciy-radio/ciy-radio.vue
+++ b/fapp/ciyon_ap/components/ciy-radio/ciy-radio.vue
@@ -201,6 +201,11 @@
._gp._left {
flex-direction: row;
+ justify-content: flex-start;
+ }
+
+ ._gp._left ._item {
+ flex-direction: row;
}
._gp ._item {
@@ -210,6 +215,7 @@
gap: 0.5em;
min-width: 7em;
padding: 0.5em;
+ flex-direction: row-reverse;
}
._gp._itemright ._item {
diff --git a/fapp/ciyon_ap/components/ciy-radiobox/ciy-radiobox.vue b/fapp/ciyon_ap/components/ciy-radiobox/ciy-radiobox.vue
deleted file mode 100644
index b8cc0a9..0000000
--- a/fapp/ciyon_ap/components/ciy-radiobox/ciy-radiobox.vue
+++ /dev/null
@@ -1,194 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/fapp/ciyon_ap/components/ciy-selmap/ciy-selmap.vue b/fapp/ciyon_ap/components/ciy-selmap/ciy-selmap.vue
index 8d538c9..cf0b54a 100644
--- a/fapp/ciyon_ap/components/ciy-selmap/ciy-selmap.vue
+++ b/fapp/ciyon_ap/components/ciy-selmap/ciy-selmap.vue
@@ -14,19 +14,19 @@
-
+
{{loc.name}}
{{loc.addr}}
- {{lang('selmap.select')}}
+ {{lang('selmap.select')}}
{{lang('selmap.loced')}}
-
+
{{loc.name}}
{{loc.addr}}
- {{lang('selmap.select')}}
+ {{lang('selmap.select')}}
{{lang('selmap.loced')}}
@@ -64,6 +64,10 @@
type: Boolean,
default: false
},
+ bet: {
+ type: [String, Number],
+ default: 10000000
+ },
lat: {
type: [String, Number],
default: ''
@@ -110,6 +114,12 @@
ret.lng = this.tofloat(this.lng);
}
return ret;
+ },
+ innerbet() {
+ var bet = this.bet;
+ if (bet <= 1)
+ return 1;
+ return this.toint(bet);
}
},
mounted() {},
@@ -118,20 +128,23 @@
if (this.disabled)
return;
var result;
- if (this.isfloat0(this.lat)) {
+ if (this.toint(this.lat) == 0) {
result = this.getstorage('_map');
if (!result || result.length != 2) {
- result = [116.4, 39.8];
+ result = [1164000000, 398000000];
} else {
- result[0] += 0.005 * Math.random();
- result[1] += 0.005 * Math.random();
+ result[0] += 50000 * Math.random();
+ result[1] += 50000 * Math.random();
}
- } else
- result = gcoord.transform([this.lng, this.lat], gcoord.WGS84, gcoord.GCJ02);
+ } else {
+ result = gcoord.transform([this.lng / this.innerbet, this.lat / this.innerbet], gcoord.WGS84, gcoord.GCJ02);
+ result[0] = this.caldectoint(result[0]);
+ result[1] = this.caldectoint(result[1]);
+ }
try {
var retchoose = await uni.chooseLocation({
- longitude: result[0],
- latitude: result[1]
+ longitude: result[0] / this.innerbet,
+ latitude: result[1] / this.innerbet
});
} catch (res) {
if (res.errMsg.indexOf('cancel') > -1)
@@ -142,6 +155,8 @@
if (!retchoose.longitude)
return this.alert(this.lang('selmap.noselect'));
var result = gcoord.transform([retchoose.longitude, retchoose.latitude], gcoord.GCJ02, gcoord.WGS84);
+ result[0] = this.caldectoint(result[0]);
+ result[1] = this.caldectoint(result[1]);
this.setstorage('_map', result);
this.loc.name = retchoose.name;
this.loc.addr = retchoose.address;
@@ -175,6 +190,11 @@
// gcoord.EPSG4326 [lng,lat] WGS-84坐标系别名,同WGS-84
// gcoord.EPSG3857 [x,y] Web Mercator投影,同WebMercator,单位:米
// gcoord.EPSG900913 [x,y] Web Mercator投影,同WebMercator,单位:米
+ },
+ caldectoint(dec) {
+ if (this.innerbet <= 1)
+ return dec;
+ return this.toint(dec * this.innerbet);
}
}
}
diff --git a/fapp/ciyon_ap/components/ciy-selpage/ciy-selpage.vue b/fapp/ciyon_ap/components/ciy-selpage/ciy-selpage.vue
index 5c1d49c..015b0c7 100644
--- a/fapp/ciyon_ap/components/ciy-selpage/ciy-selpage.vue
+++ b/fapp/ciyon_ap/components/ciy-selpage/ciy-selpage.vue
@@ -92,7 +92,9 @@
morevalue: {
handler(newD, oldD) {
this.v = this.modelValue || this.value;
- this.innermore = {...newD};
+ this.innermore = {
+ ...newD
+ };
},
immediate: true
},
@@ -100,7 +102,9 @@
computed: {
tvalue() {
var val = '';
- var valmore = {...this.innermore};
+ var valmore = {
+ ...this.innermore
+ };
if (this.v == 'modelValue') {
if (typeof(this.modelValue) == 'number')
val = this.modelValue;
@@ -143,8 +147,12 @@
url: this.page + '?sel=true&id=' + this.tvalue.id,
events: {
writedata: data => {
- this.v = data;
- this.innertext = data.name;
+ this.v = {
+ ...data
+ };
+ this.innermore = {
+ ...data
+ };
this.$emit('update:modelValue', data.id);
this.$emit('change', {
name: this.name,
diff --git a/fapp/ciyon_ap/components/ciy-showimgs/ciy-showimgs.vue b/fapp/ciyon_ap/components/ciy-showimgs/ciy-showimgs.vue
index fce3d4b..a239659 100644
--- a/fapp/ciyon_ap/components/ciy-showimgs/ciy-showimgs.vue
+++ b/fapp/ciyon_ap/components/ciy-showimgs/ciy-showimgs.vue
@@ -2,12 +2,12 @@
{{label}}
-
+
{{lang('showimgs.att')}}{{index+1}}
-
+
{{lang('showimgs.att')}}{{index+1}}
diff --git a/fapp/ciyon_ap/components/ciy-upload/ciy-upload.vue b/fapp/ciyon_ap/components/ciy-upload/ciy-upload.vue
index c81b35e..0d9c272 100644
--- a/fapp/ciyon_ap/components/ciy-upload/ciy-upload.vue
+++ b/fapp/ciyon_ap/components/ciy-upload/ciy-upload.vue
@@ -119,7 +119,7 @@
},
zipjpg: {
type: [String, Number],
- default: 0.7
+ default: 70
},
waterfont: {
type: String,
@@ -564,7 +564,7 @@
opn.maxkb = this.toint(this.maxkb);
opn.imgwidth = this.toint(this.imgwidth);
opn.imgheight = this.toint(this.imgheight);
- opn.zipjpg = this.tofloat(this.zipjpg);
+ opn.zipjpg = this.toint(this.zipjpg);
opn.watertext = this.watertext;
opn.watertype = this.watertype;
opn.waterpadding = this.toint(this.waterpadding);
diff --git a/fapp/ciyon_ap/pages/demo/case/comlife.vue b/fapp/ciyon_ap/pages/demo/case/comlife.vue
index 62c5a56..3cab4ab 100644
--- a/fapp/ciyon_ap/pages/demo/case/comlife.vue
+++ b/fapp/ciyon_ap/pages/demo/case/comlife.vue
@@ -2,7 +2,7 @@
- 跳转测试
+ 跳转测试
H5页面
diff --git a/fapp/ciyon_ap/pages/demo/comform/selmap.vue b/fapp/ciyon_ap/pages/demo/comform/selmap.vue
index 9607e52..2774120 100644
--- a/fapp/ciyon_ap/pages/demo/comform/selmap.vue
+++ b/fapp/ciyon_ap/pages/demo/comform/selmap.vue
@@ -31,7 +31,7 @@
- {{data.value.lat}},{{data.value.lng}}
+ {{data.value.lat/data.bet}},{{data.value.lng/data.bet}}
diff --git a/fapp/ciyon_ap/pages/demo/comform/selpage.vue b/fapp/ciyon_ap/pages/demo/comform/selpage.vue
index a229b94..4b9daaf 100644
--- a/fapp/ciyon_ap/pages/demo/comform/selpage.vue
+++ b/fapp/ciyon_ap/pages/demo/comform/selpage.vue
@@ -14,13 +14,13 @@
-
+
-
+
@@ -32,13 +32,13 @@
-
+
-
+
{{data.name}}
{{data.addr}}
diff --git a/fapp/ciyon_ap/pages/demo/comform/upload.vue b/fapp/ciyon_ap/pages/demo/comform/upload.vue
index 43f9a85..588c868 100644
--- a/fapp/ciyon_ap/pages/demo/comform/upload.vue
+++ b/fapp/ciyon_ap/pages/demo/comform/upload.vue
@@ -48,31 +48,31 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/fapp/ciyon_ap/pages/demo/comview/auth.vue b/fapp/ciyon_ap/pages/demo/comview/auth.vue
index 91cec81..acd5d42 100644
--- a/fapp/ciyon_ap/pages/demo/comview/auth.vue
+++ b/fapp/ciyon_ap/pages/demo/comview/auth.vue
@@ -39,10 +39,15 @@
自动微信登录注册,未登录则打开界面
- this.getauth(bmust)
+ this.getauth(type)
调取登录状态
- bmust: true 强制打开登录界面(换号登录)
+ type: 空 静默登录(默认)
+ type: relogin 强制打开登录界面(换号登录)
+ type: info 需填写个人信息
+ type: real 需实名认证。前提info
+ type: bank 需填写银行。前提real
+ type: cciy 需有全球众识码。前提real
diff --git a/fapp/ciyon_ap/pages/demo/curd/demo_edit.vue b/fapp/ciyon_ap/pages/demo/curd/demo_edit.vue
index 9759258..932ffd0 100644
--- a/fapp/ciyon_ap/pages/demo/curd/demo_edit.vue
+++ b/fapp/ciyon_ap/pages/demo/curd/demo_edit.vue
@@ -10,131 +10,130 @@
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
秒
@@ -142,80 +141,74 @@
第
-
+
期
-
+
-
+
-
+
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -238,6 +231,7 @@
onLoad() {
if (!this.pagedata.demo)
return this.alert('不能直接访问,请重新进入'); //独立进入写后端函数获取数据
+ this.editdata = {...this.pagedata.demo};
this.getdata();
},
watch: {},
@@ -251,7 +245,7 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
+ var retjson = await this.callfunc({
func: 'demo/demo.getdata',
data: {
...this.opn,
@@ -272,10 +266,10 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
+ var retjson = await this.callfunc({
func: 'demo/demo.update',
data: {
- ...this.pagedata.demo
+ ...this.editdata
}
});
this._loading = false;
diff --git a/fapp/ciyon_ap/pages/demo/curd/demo_list.vue b/fapp/ciyon_ap/pages/demo/curd/demo_list.vue
index 62e2e8d..f9c9030 100644
--- a/fapp/ciyon_ap/pages/demo/curd/demo_list.vue
+++ b/fapp/ciyon_ap/pages/demo/curd/demo_list.vue
@@ -10,8 +10,8 @@
-
-
+
+
@@ -137,10 +137,6 @@
查看位置
-
-
- {{tofix(item.nums)}}
-
{{tofix(item.pct/100, 2)}}%
@@ -177,10 +173,7 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_cash_bank.vue b/fapp/ciyon_ap/pages/main/me_cash_bank.vue
deleted file mode 100644
index 1bac5c5..0000000
--- a/fapp/ciyon_ap/pages/main/me_cash_bank.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
- 个人微信提现
- 每次最低提现金额为1元。
- 统一代扣缴20%个税,每月汇总申报个税。
- 以实名认证姓名、身份证号及手机号为准。
-
- 独立纳税提现
- 每次最低提现金额为1000元。
- 申请提现后,平台收到电子发票后打款。
- 注意: 电子发票抬头与账户名称一致。
-
-
-
-
-
-
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_info.vue b/fapp/ciyon_ap/pages/main/me_info.vue
deleted file mode 100644
index b3308b0..0000000
--- a/fapp/ciyon_ap/pages/main/me_info.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_invoice.vue b/fapp/ciyon_ap/pages/main/me_invoice.vue
deleted file mode 100644
index 9b12c7a..0000000
--- a/fapp/ciyon_ap/pages/main/me_invoice.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_passchange.vue b/fapp/ciyon_ap/pages/main/me_passchange.vue
deleted file mode 100644
index 8a10361..0000000
--- a/fapp/ciyon_ap/pages/main/me_passchange.vue
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/fapp/ciyon_ap/pages/main/me_cash_charge.vue b/fapp/ciyon_ap/pages/me/cash_charge.vue
similarity index 78%
rename from fapp/ciyon_ap/pages/main/me_cash_charge.vue
rename to fapp/ciyon_ap/pages/me/cash_charge.vue
index 760775a..69b7fbb 100644
--- a/fapp/ciyon_ap/pages/main/me_cash_charge.vue
+++ b/fapp/ciyon_ap/pages/me/cash_charge.vue
@@ -9,9 +9,9 @@
-
+
- {{item/100}}元
+ {{item.chargemoney/100}}元
@@ -27,7 +27,7 @@
-
+
@@ -72,12 +72,22 @@
},
methods: {
async getinit() {
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_cash_charge.vue
this.init.charges = [];
this.init.charges.push(10000);
this.init.charges.push(50000);
this.init.charges.push(100000);
this.init.charges.push(500000);
this.init.code = 1;
+=======
+ var retjson = await this.callfunc({
+ func: 'me.cash_charge_init',
+ data: this.pagepost
+ });
+ if (retjson.code != 1)
+ return this.alert(retjson.errmsg);
+ this.init = retjson;
+>>>>>>> publish:fapp/ciyon_ap/pages/me/cash_charge.vue
this.money = this.toint(this.opn.pay);
if(this.money > 0)
this.paynow();
@@ -88,8 +98,8 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
- func: 'me.charge_paynow',
+ var retjson = await this.callfunc({
+ func: 'me.cash_charge_pay',
data: {
money: this.money
}
@@ -102,8 +112,8 @@
try {
var retpay = await uni.requestPayment(retjson);
await this.sleep(1000);
- var retjson2 = await this.callajax({
- func: 'me.charge_paychk',
+ var retjson2 = await this.callfunc({
+ func: 'me.cash_charge_chk',
data: {
orderid: retjson.orderid
}
diff --git a/fapp/ciyon_ap/pages/main/me_cash_ie.vue b/fapp/ciyon_ap/pages/me/cashie_lst.vue
similarity index 84%
rename from fapp/ciyon_ap/pages/main/me_cash_ie.vue
rename to fapp/ciyon_ap/pages/me/cashie_lst.vue
index 3697384..a358cf2 100644
--- a/fapp/ciyon_ap/pages/main/me_cash_ie.vue
+++ b/fapp/ciyon_ap/pages/me/cashie_lst.vue
@@ -9,7 +9,11 @@
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_cash_ie.vue
+=======
+
+>>>>>>> publish:fapp/ciyon_ap/pages/me/cashie_lst.vue
{{item.name}}
@@ -27,12 +31,9 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_cash_out.vue b/fapp/ciyon_ap/pages/me/cashout_lst.vue
similarity index 62%
rename from fapp/ciyon_ap/pages/main/me_cash_out.vue
rename to fapp/ciyon_ap/pages/me/cashout_lst.vue
index 60ef120..9d3dbaa 100644
--- a/fapp/ciyon_ap/pages/main/me_cash_out.vue
+++ b/fapp/ciyon_ap/pages/me/cashout_lst.vue
@@ -9,13 +9,28 @@
-
+
- {{item.cashtype==1?'银行收款 (开具发票独立纳税)':'微信打款 (代扣缴个税)'}}
+
+ {{cashtype==1?'银行':'微信'}}
+ {{item.taxmoney==-1?'企业开具发票':'代缴个税 ' + (item.taxmoney/100)+' 元'}}
+
+
+ 发票号码 {{item.invcode}}
+ 操作时间 {{todatetime(item.cashtimes)}}
+ 支付编号 {{item.cashno}}
+ 拒绝原因 {{item.auditmsg}}
+ 账户名称 {{item.bankaccount}}
+ 银行卡号 {{item.bankno}}
+ 开户银行 {{item.bankname}}
+ 联行号 {{item.bankcode}}
+
{{ccode(g.cashstatus, item.cashstatus)}}
{{todatetime(item.addtimes)}}
{{item.cashmoney/100}}
+
+
@@ -27,16 +42,9 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_bank_info.vue b/fapp/ciyon_ap/pages/me/me_bank_info.vue
similarity index 100%
rename from fapp/ciyon_ap/pages/main/me_bank_info.vue
rename to fapp/ciyon_ap/pages/me/me_bank_info.vue
diff --git a/fapp/ciyon_ap/pages/main/me_pnt_buy.vue b/fapp/ciyon_ap/pages/me/pnt_buylst.vue
similarity index 73%
rename from fapp/ciyon_ap/pages/main/me_pnt_buy.vue
rename to fapp/ciyon_ap/pages/me/pnt_buylst.vue
index 24a3751..1f9a7ba 100644
--- a/fapp/ciyon_ap/pages/main/me_pnt_buy.vue
+++ b/fapp/ciyon_ap/pages/me/pnt_buylst.vue
@@ -6,9 +6,6 @@
-
-
-
已支付
@@ -18,6 +15,8 @@
{{item.pnt}}
金币
+ 支付流水
+ {{item.name}}
{{todatetime(item.addtimes)}}
{{item.buypntmoney/100}}
@@ -34,22 +33,9 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_pnt.vue b/fapp/ciyon_ap/pages/me/pnt_buynow.vue
similarity index 95%
rename from fapp/ciyon_ap/pages/main/me_pnt.vue
rename to fapp/ciyon_ap/pages/me/pnt_buynow.vue
index f4ade44..ca006d6 100644
--- a/fapp/ciyon_ap/pages/main/me_pnt.vue
+++ b/fapp/ciyon_ap/pages/me/pnt_buynow.vue
@@ -7,11 +7,11 @@
-
+
购买记录
-
+
金币流水
@@ -92,8 +92,8 @@
},
methods: {
async getinit() {
- var retjson = await this.callajax({
- func: 'me.buy_init',
+ var retjson = await this.callfunc({
+ func: 'me.pnt_buynow_init',
data: this.pagepost
});
if (retjson.code != 1)
@@ -104,8 +104,8 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
- func: 'me.buy_paynow',
+ var retjson = await this.callfunc({
+ func: 'me.pnt_buynow_pay',
data: {
id: this.init.buys[this.currbuy].id
}
@@ -118,8 +118,8 @@
try {
var retpay = await uni.requestPayment(retjson);
await this.sleep(1000);
- var retjson2 = await this.callajax({
- func: 'me.buy_paychk',
+ var retjson2 = await this.callfunc({
+ func: 'me.pnt_buynow_chk',
data: {
orderid: retjson.orderid
}
diff --git a/fapp/ciyon_ap/pages/main/me_pnt_record.vue b/fapp/ciyon_ap/pages/me/pnt_lst.vue
similarity index 93%
rename from fapp/ciyon_ap/pages/main/me_pnt_record.vue
rename to fapp/ciyon_ap/pages/me/pnt_lst.vue
index 2170c07..68f69a1 100644
--- a/fapp/ciyon_ap/pages/main/me_pnt_record.vue
+++ b/fapp/ciyon_ap/pages/me/pnt_lst.vue
@@ -24,9 +24,7 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/me/safe_ccub.vue b/fapp/ciyon_ap/pages/me/safe_ccub.vue
new file mode 100644
index 0000000..5a231bb
--- /dev/null
+++ b/fapp/ciyon_ap/pages/me/safe_ccub.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ 您已申请成功
+ {{me.cciy}}
+
+
+ 您已提交申请,等待审核...
+ 您的申请正在审核中...
+ 您已申请通过
+
+ {{init.data.name}}
+ {{init.data.country}}
+ {{todatetime(init.data.addtimes)}} 申请
+
+
+
+
+ {{init.data.auditmsg}}
+
+
+
+
+
+
+
+
+ 中国
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/me/safe_password.vue b/fapp/ciyon_ap/pages/me/safe_password.vue
new file mode 100644
index 0000000..0e3271f
--- /dev/null
+++ b/fapp/ciyon_ap/pages/me/safe_password.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_real.vue b/fapp/ciyon_ap/pages/me/safe_real.vue
similarity index 57%
rename from fapp/ciyon_ap/pages/main/me_real.vue
rename to fapp/ciyon_ap/pages/me/safe_real.vue
index e4b6c05..b27da67 100644
--- a/fapp/ciyon_ap/pages/main/me_real.vue
+++ b/fapp/ciyon_ap/pages/me/safe_real.vue
@@ -3,36 +3,73 @@
+
+ {{me.truename}},已通过实名认证
+ {{tomsk(me.idid, '*#**')}}
+
您已提交申请,等待审核...
您的申请正在审核中...
您已申请通过
{{init.data.name}}
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_real.vue
{{init.data.idid}}
+=======
+ {{tomsk(init.data.idid, '**###***')}}
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
{{todatetime(init.data.addtimes)}} 申请
-
+
{{init.data.auditmsg}}
-
+=======
+
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
@@ -70,10 +110,9 @@
export default {
data() {
return {
- name: '',
- idno: '',
+ inputtype: 0, //1拍照识别,2语音识别手动录入扫描件,3nfc刷卡识别
nfcdata: {},
- nfcwork: 0
+ nfcwork: 0,
}
},
onLoad() {
@@ -81,58 +120,87 @@
},
methods: {
async getinit() {
- var retjson = await this.callajax({
- func: 'me.userreal_apply_get'
+ await this.getauth('info');
+ var app = getApp();
+ this.inputtype = 2;
+ var retjson = await this.callfunc({
+ func: 'me.safe_real_init'
});
this.init = retjson;
if (retjson.code != 1)
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_real.vue
return;
+=======
+ return this.alert(retjson.errmsg);
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
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);
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_real.vue
var app = getApp();
var page = app.getpage(1);
page.me = this.me;
+=======
+ var page = app.getpage(1);
+ page.me = this.me;
+ }
+ this.editdata.name = this.me.truename;
+ this.editdata.idid = this.me.idid;
+ if (this.inputtype == 1) {
+ setTimeout(() => {
+ this.getrefsSync('cameraocr').Step(1);
+ }, 500);
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
}
setTimeout(() => {
this.getrefsSync('cameraocr').Step(1);
}, 500);
},
async submit(e) {
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_real.vue
// e.detail.value.name = '张东';
// e.detail.value.idno = '152304200111157127';
if (e.detail.value.name.length < 1)
+=======
+ // this.editdata.name = '张东';
+ // this.editdata.idid = '152304200111157127';
+ if (this.editdata.name.length < 1)
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
return this.toast('请输入姓名');
- if (e.detail.value.idno.length < 10)
+ if (this.editdata.idid.length < 10)
return this.toast('请输入身份证号');
if (this._loading)
return;
this._loading = true;
- if (this.idimg) {
+ if (this.inputtype == 1 && this.idimg) {
var opn = {};
opn.basepath = 'idcard';
opn.stor = '/';
- e.detail.value.idcard1 = await this.file_upload1(this.idimg, opn);
+ this.editdata.idcard1 = await this.file_upload1(this.idimg, opn);
}
- var retjson = await this.callajax({
- func: 'me.userreal_apply_submit',
- data: e.detail.value
+ var retjson = await this.callfunc({
+ func: 'me.safe_real_submit',
+ data: this.editdata
});
this._loading = false;
if (retjson.code != 1)
return this.alert(retjson.errmsg);
- await this.toast('申请已提交');
+ await this.toast('申请提交成功');
uni.navigateBack();
},
+<<<<<<< HEAD:fapp/ciyon_ap/pages/main/me_real.vue
async chgidcard(e) {
+=======
+ async chgcameraocr(e) {
+>>>>>>> publish:fapp/ciyon_ap/pages/me/safe_real.vue
console.log(e);
this.idimg = e.tempimg;
if (this._loading)
return this.toast('请稍后再试');
this._loading = true;
- var retjson = await this.callajax({
- func: 'ai.aidecision',
+ var retjson = await this.callfunc({
+ func: 'ciyai.aidecision',
data: {
id: 3,
idcardocr: e.txts.join('\n')
@@ -141,8 +209,25 @@
this._loading = false;
if (retjson.code != 1)
return this.alert(retjson.errmsg);
- this.name = retjson.ai.name;
- this.idno = retjson.ai.idno;
+ this.editdata.name = retjson.ai.name;
+ this.editdata.idno = retjson.ai.idno;
+ },
+ async chgvoice(e) {
+ //按住说话,调用@change,界面上调用大模型给出合理结果,自动填写姓名和身份证号
+ //简单的文字,用字符串匹配先试试。
+ var retjson = await this.callfunc({
+ func: 'ciyai.aidecision',
+ data: {
+ id: 4,
+ voicetxt: e.txt
+ }
+ });
+ if (retjson.code != 1)
+ return this.alert(retjson.errmsg);
+ if (retjson.ai.name)
+ this.editdata.name = retjson.ai.name;
+ if (retjson.ai.idno)
+ this.editdata.idid = retjson.ai.idno;
},
async readnfc() {
var ciynfc = res => {
@@ -162,8 +247,10 @@
console.log('connect', res);
nfc.transceive({
data: buffer,
- success(res) {
+ success: (res) => {
console.log('transecive', res);
+ this.editdata.name = res.nfcdata.name;
+ this.editdata.idid = res.nfcdata.idno;
},
fail(res) {
console.log('transecive fail', res);
@@ -202,23 +289,6 @@
//res.id = ArrayBuffer(8) {byteLength: 8, maxByteLength: 8, resizable: false, detached: false}
//res.techs = ['NFC-B']
},
- async chgvoice(e) {
- //按住说话,调用@change,界面上调用大模型给出合理结果,自动填写姓名和身份证号
- //简单的文字,用字符串匹配先试试。
- var retjson = await this.callajax({
- func: 'ai.aidecision',
- data: {
- id: 4,
- voicetxt: e.txt
- }
- });
- if (retjson.code != 1)
- return this.alert(retjson.errmsg);
- if (retjson.ai.name)
- this.name = retjson.ai.name;
- if (retjson.ai.idno)
- this.idno = retjson.ai.idno;
- }
}
}
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_qrcode.vue b/fapp/ciyon_ap/pages/me/share_qrcode.vue
similarity index 88%
rename from fapp/ciyon_ap/pages/main/me_qrcode.vue
rename to fapp/ciyon_ap/pages/me/share_qrcode.vue
index 73eaa51..2b6ed63 100644
--- a/fapp/ciyon_ap/pages/main/me_qrcode.vue
+++ b/fapp/ciyon_ap/pages/me/share_qrcode.vue
@@ -24,8 +24,8 @@
},
methods: {
async getinit() {
- var retjson = await this.callajax({
- func: 'me.getqrcode',
+ var retjson = await this.callfunc({
+ func: 'me.share_qrcode_get',
data: {}
});
if (retjson.code != 1)
diff --git a/fapp/ciyon_ap/pages/main/me_suggest.vue b/fapp/ciyon_ap/pages/me/suggest.vue
similarity index 56%
rename from fapp/ciyon_ap/pages/main/me_suggest.vue
rename to fapp/ciyon_ap/pages/me/suggest.vue
index 6d59669..9d4f5ba 100644
--- a/fapp/ciyon_ap/pages/main/me_suggest.vue
+++ b/fapp/ciyon_ap/pages/me/suggest.vue
@@ -6,33 +6,31 @@
-
+
@@ -40,7 +38,7 @@
- 已答复
+ 已答复
未答复
{{todatetime(item.addtimes)}}
@@ -54,15 +52,15 @@
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/me/user_info.vue b/fapp/ciyon_ap/pages/me/user_info.vue
new file mode 100644
index 0000000..50770ff
--- /dev/null
+++ b/fapp/ciyon_ap/pages/me/user_info.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fapp/ciyon_ap/pages/main/me_shipaddr.vue b/fapp/ciyon_ap/pages/me/user_shipaddr.vue
similarity index 93%
rename from fapp/ciyon_ap/pages/main/me_shipaddr.vue
rename to fapp/ciyon_ap/pages/me/user_shipaddr.vue
index e2124a8..065ef04 100644
--- a/fapp/ciyon_ap/pages/main/me_shipaddr.vue
+++ b/fapp/ciyon_ap/pages/me/user_shipaddr.vue
@@ -7,18 +7,18 @@
-
+
收件人 {{item.name}}
联系电话 {{item.phone}}
{{mcode(g.ciy_arearpc,item.areacode,'name').join(' . ')}}
{{item.addr}}
-
+
-
+
@@ -52,7 +52,7 @@
-
+
定位
@@ -113,8 +113,8 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
- func: 'me.shipaddr_get'
+ var retjson = await this.callfunc({
+ func: 'me.user_shipaddr_list'
});
this._loading = false;
if (retjson.code != 1)
@@ -171,8 +171,8 @@
if (this._loading)
return;
this._loading = true;
- var retjson = await this.callajax({
- func: 'me.shipaddr_edit',
+ var retjson = await this.callfunc({
+ func: 'me.user_shipaddr_edit',
data: e.detail.value
});
this._loading = false;
@@ -188,15 +188,15 @@
async del(item) {
if (await this.askmsg('是否删除?') != 'ok')
return;
- var retjson = await this.callajax({
- func: 'me.shipaddr_del',
+ var retjson = await this.callfunc({
+ func: 'me.user_shipaddr_del',
data: {
id: item.data.id
}
});
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);
diff --git a/fapp/ciyon_ap/pages/pub/camera.vue b/fapp/ciyon_ap/pages/pub/camera.vue
index 9510191..7905d23 100644
--- a/fapp/ciyon_ap/pages/pub/camera.vue
+++ b/fapp/ciyon_ap/pages/pub/camera.vue
@@ -30,7 +30,7 @@
onUnload() {
var postparam = {};
postparam.id = this.opn.id;
- var retjson = this.callajax({
+ var retjson = this.callfunc({
func: 'pub.imgend',
data: postparam
});
@@ -47,7 +47,7 @@
postparam.id = this.opn.id;
postparam.txts = e.txts.join('\n');
postparam.img = await this.file_upload1(e.tempimg, opn);
- var retjson = await this.callajax({
+ var retjson = await this.callfunc({
func: 'pub.imgadd',
data: postparam
});
diff --git a/fapp/ciyon_ap/pages/main/paper.vue b/fapp/ciyon_ap/pages/pub/paper.vue
similarity index 92%
rename from fapp/ciyon_ap/pages/main/paper.vue
rename to fapp/ciyon_ap/pages/pub/paper.vue
index 03c329d..c995495 100644
--- a/fapp/ciyon_ap/pages/main/paper.vue
+++ b/fapp/ciyon_ap/pages/pub/paper.vue
@@ -28,8 +28,8 @@
computed: {},
methods: {
async getinit() {
- var retjson = await this.callajax({
- func: 'index.paper',
+ var retjson = await this.callfunc({
+ func: 'main.paper_get',
data: this.opn
});
if (retjson.code != 1)
diff --git a/fapp/ciyon_ap/pages/main/part.vue b/fapp/ciyon_ap/pages/pub/part.vue
similarity index 73%
rename from fapp/ciyon_ap/pages/main/part.vue
rename to fapp/ciyon_ap/pages/pub/part.vue
index 099e7a5..5b22008 100644
--- a/fapp/ciyon_ap/pages/main/part.vue
+++ b/fapp/ciyon_ap/pages/pub/part.vue
@@ -17,13 +17,11 @@
-
+
+
+
+
+
@@ -35,8 +33,7 @@
+
+
+
+
+
+
+
+
diff --git a/web/admin/ap/cash_out_2.php b/web/admin/ap/cash_out_inv.php
similarity index 64%
rename from web/admin/ap/cash_out_2.php
rename to web/admin/ap/cash_out_inv.php
index 8507fe7..bc47714 100644
--- a/web/admin/ap/cash_out_2.php
+++ b/web/admin/ap/cash_out_inv.php
@@ -2,13 +2,15 @@
namespace web\admin\ap;
-class cash_out_2 {
+class cash_out_inv {
static function setwhere($db, $post) {
$query = $post->get('query');
$csql = new \ciy\sql('ap_cash_out');
$liid = objint($query, 'liid');
if ($liid > 0)
$csql->where('cashstatus', $liid);
+ else
+ $csql->where('cashstatus=30');
$val = objstr($query, 'vuser');
if (!empty($val)) {
$csqlt = new \ciy\sql('ap_user');
@@ -21,7 +23,7 @@ class cash_out_2 {
$csql->where('vuser=0');
}
}
- $csql->where('cashtype', 1);
+ $csql->where('cashtype', objstr($query, 'cashtype'));
$csql->wherenumrange('cashmoney', objstr($query, 'cashmoney_1'), objstr($query, 'cashmoney_2'), 100);
$csql->wheredaterange('addtimes', objstr($query, 'addtimes'));
$csql->where('cashno like', objstr($query, 'cashno'));
@@ -43,7 +45,7 @@ class cash_out_2 {
$rows = $db->get($csql, $mainrowcount);
if ($rows === false)
return errjson($db->error);
- $ret = array('where' => $where, 'pageno' => $pageno, 'pagecount' => $pagecount, 'count' => $mainrowcount, 'list' => $rows);
+ $ret = array('searchwhere' => $where, 'pageno' => $pageno, 'pagecount' => $pagecount, 'count' => $mainrowcount, 'list' => $rows);
if ($post->getbool('field')) {
$field = array();
$fshow = $db->getfield($field, 'ap_cash_out');
@@ -52,48 +54,74 @@ class cash_out_2 {
$field[$fr]['c'] = ',' . $field[$fr]['c'];
}
$fshow = fieldadd($fshow, $field, 0, '_btn', '操作');
+ $field['bankaccount']['c'] = '';
+ $field['bankname']['c'] = '';
+ $field['bankno']['c'] = '';
+ $field['bankcode']['c'] = '';
+ $field['cashno']['c'] = '';
$ret['field'] = $field;
$ret['fshow'] = $fshow;
}
if ($post->getbool('once')) {
- $ret['once'] = array();
+ $ret['once'] = true;
$input = array();
$input[] = array('type' => 'input', 'form' => 'vuser', 'name' => '所属用户', 'prop' => ' style="width:8em;"');
+ $input[] = array('type' => 'select', 'form' => 'cashtype', 'name' => '提现方式', 'all' => '全部', 'select' => '独立纳税.个人微信');
$input[] = array('type' => 'num', 'form' => 'cashmoney', 'name' => '金额', 'prop' => ' style="width:4em;"');
$input[] = array('type' => 'daterange', 'form' => 'addtimes', 'name' => '申请时间');
$input[] = array('type' => 'input', 'form' => 'cashno', 'name' => '支付编号', 'prop' => ' style="width:8em;"');
- $ret['once']['input'] = $input;
+ $ret['searchinput'] = $input;
}
$ret['ap_user'] = getrelation($db, $rows, 'ap_user', 'vuser');
return succjson($ret);
}
- public static function json_update() {
+ public static function json_audit() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p u'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
- $id = $post->getint('id');
- $cashno = $post->get('cashno');
+ $act = $post->getint('act');
+ $auditmsg = $post->get('auditmsg');
+ $ids = $post->get('ids');
+ if (empty($ids))
+ return errjson('请选择至少一条');
+ if ($act == 2) {
+ if (empty($auditmsg))
+ return errjson('请填写拒绝原因');
+ }
$csql = new \ciy\sql('ap_cash_out');
- $csql->where('id', $id);
- $datarow = $db->getone($csql);
- if (!is_array($datarow))
- return errjson('数据不存在');
- if ($datarow['cashstatus'] != 20)
- return errjson('提现状态不正确');
+ $csql->where('id in', $ids);
+ $rows = $db->get($csql);
+ $ids = array();
try {
$db->begin();
- $updata = array();
- $updata['cashstatus'] = 100;
- $updata['cashtimes'] = tostamp();
- $updata['cashno'] = $cashno;
- $csql = new \ciy\sql('ap_cash_out');
- $csql->where('id', $id);
- if ($db->update($csql, $updata) === false)
- throw new \Exception('更新失败:' . $db->error);
- $updata['id'] = $id;
- savelogdb($db, $rsuser['id'], 'ap_cash_out', $datarow, $updata);
+ foreach ($rows as $row) {
+ if ($row['cashstatus'] != 30)
+ continue;
+ if ($act == 2) { //退余额
+ $updata = array();
+ $updata['mycashmoney'] = array('mycashmoney+' . $row['cashmoney']);
+ $csql = new \ciy\sql('ap_user');
+ $csql->where('id', $row['vuser']);
+ if ($db->update($csql, $updata) === false)
+ throw new \Exception('更新账户失败:' . $db->error);
+ }
+ $id = $row['id'];
+ $updata = array();
+ if ($act == 1) {
+ $updata['cashstatus'] = 50;
+ } else {
+ $updata['cashstatus'] = 90;
+ $updata['auditmsg'] = $auditmsg;
+ }
+ $csql = new \ciy\sql('ap_cash_out');
+ $csql->where('id', $id);
+ if ($db->update($csql, $updata) === false)
+ throw new \Exception('更新失败:' . $db->error);
+ $updata['id'] = $id;
+ $ids[] = $id;
+ }
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
@@ -101,9 +129,44 @@ class cash_out_2 {
return errjson($ex->getMessage());
}
$ret['data'] = $updata;
+ $ret['ids'] = $ids;
return succjson($ret);
}
+ public static function json_del() {
+ global $db;
+ $rsuser = verifyfast();
+ //if (nopower($db, $rsuser['id'], 'p d'))
+ // return errjson('您未被授权操作');
+ $post = new \ciy\post();
+ $ids = $post->get('ids');
+ if (empty($ids))
+ return errjson('请选择至少一条');
+ $csql = new \ciy\sql('ap_cash_out');
+ $csql->where('id in', $ids);
+ $rows = $db->get($csql);
+ $vids = array();
+ try {
+ $db->begin();
+ foreach ($rows as $row) {
+ if ($row['cashstatus'] < 90)
+ continue;
+ if ($row['addtimes'] > time() - 86400 * 30)
+ continue;
+ $delid = $row['id'];
+ delme($db, $delid, 'ap_cash_out');
+ savelogdb($db, $rsuser['id'], 'ap_cash_out', $row, null);
+ $vids[] = $delid;
+ }
+ $db->commit();
+ } catch (\Exception $ex) {
+ $db->rollback();
+ savelogfile('err_db', $ex->getMessage());
+ return errjson($ex->getMessage());
+ }
+ $ret['ids'] = $vids;
+ return succjson($ret);
+ }
public static function json_exportxls() {
global $db;
$rsuser = verifyfast();
diff --git a/web/admin/ap/cash_out_transfer.html b/web/admin/ap/cash_out_transfer.html
new file mode 100644
index 0000000..b23c7e8
--- /dev/null
+++ b/web/admin/ap/cash_out_transfer.html
@@ -0,0 +1,214 @@
+
+
+
+