zet-lib 1.3.37 → 1.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/zAppRouter.js +10 -6
- package/lib/zRoute.js +52 -12
- package/package.json +1 -1
package/lib/zAppRouter.js
CHANGED
|
@@ -1294,12 +1294,16 @@ router.post('/zdeleted-selected/:table', async (req, res) => {
|
|
|
1294
1294
|
if (datas.length > 0) {
|
|
1295
1295
|
for (const data of datas) {
|
|
1296
1296
|
let id = data.name.replace('ck[', '').replace(']', '')
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1297
|
+
try {
|
|
1298
|
+
await connection.delete({
|
|
1299
|
+
table: table,
|
|
1300
|
+
where: {
|
|
1301
|
+
id: id,
|
|
1302
|
+
},
|
|
1303
|
+
})
|
|
1304
|
+
} catch (e) {
|
|
1305
|
+
io.emit('error', e + '')
|
|
1306
|
+
}
|
|
1303
1307
|
}
|
|
1304
1308
|
} else {
|
|
1305
1309
|
json = Util.flashError('No Data')
|
package/lib/zRoute.js
CHANGED
|
@@ -1637,7 +1637,7 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1637
1637
|
let aliasResults = {}
|
|
1638
1638
|
for (let key in MYMODEL.widgets) {
|
|
1639
1639
|
if (!notJoins.includes(key)) {
|
|
1640
|
-
if (MYMODEL.widgets[key].name == 'relation' || MYMODEL.widgets[key].name == 'typeahead') {
|
|
1640
|
+
if (MYMODEL.widgets[key].name == 'relation' || MYMODEL.widgets[key].name == 'typeahead' || MYMODEL.widgets[key].name == 'dropdown_multi') {
|
|
1641
1641
|
if (MYMODEL.widgets[key].import_field && MYMODEL.widgets[key].import_field != 'id') {
|
|
1642
1642
|
aliasResults[key] = Util.arrayToObject(
|
|
1643
1643
|
await connection.results({
|
|
@@ -1671,7 +1671,7 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1671
1671
|
tableObj[key] = widget.fields
|
|
1672
1672
|
} else if (widget.name == 'switch') {
|
|
1673
1673
|
tableObj[key] = widget.fields
|
|
1674
|
-
} else if (widget.name == 'relation' || widget.name == 'typeahead') {
|
|
1674
|
+
} else if (widget.name == 'relation' || widget.name == 'typeahead' || widget.name == 'dropdown_multi') {
|
|
1675
1675
|
var rowsarr = await connection.results({
|
|
1676
1676
|
table: widget.table,
|
|
1677
1677
|
select: widget.fields[0] + ',' + widget.fields[1] + ' as zname ',
|
|
@@ -1747,20 +1747,31 @@ zRoute.excel = async (req, res, MYMODEL, fields, rows, callback, fileName) => {
|
|
|
1747
1747
|
} else {
|
|
1748
1748
|
t = !callback(result, field) ? tableObj[field][result[field]] || '' : callback(result, field)
|
|
1749
1749
|
}
|
|
1750
|
-
} else if ((widgets.hasOwnProperty(field) && widgets[field].name == 'relation') || (widgets.hasOwnProperty(field) && widgets[field].name == 'typeahead')) {
|
|
1750
|
+
} else if ((widgets.hasOwnProperty(field) && widgets[field].name == 'relation') || (widgets.hasOwnProperty(field) && widgets[field].name == 'typeahead') || (widgets.hasOwnProperty(field) && widgets[field].name == 'dropdown_multi')) {
|
|
1751
1751
|
let myvalue = ''
|
|
1752
1752
|
if (widgets[field].import_field && widgets[field].import_field != 'id') {
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1753
|
+
if (widgets[field].name == 'dropdown_multi') {
|
|
1754
|
+
if (Array.isArray(result[field])) {
|
|
1755
|
+
let dropdownmultivalue = []
|
|
1756
|
+
result[field].map((item) => {
|
|
1757
|
+
dropdownmultivalue.push(relations[field][item].zname)
|
|
1758
|
+
})
|
|
1759
|
+
result[field] = result[field] ? JSON.stringify(dropdownmultivalue) : ''
|
|
1760
|
+
}
|
|
1758
1761
|
} else {
|
|
1759
|
-
|
|
1760
|
-
|
|
1762
|
+
if (isNaN(result[field])) {
|
|
1763
|
+
myvalue = result[field]
|
|
1764
|
+
} else {
|
|
1765
|
+
myvalue = result[field] ? aliasResults[field][result[field]][widgets[field].import_field] : ''
|
|
1766
|
+
result[field] = result[field] ? aliasResults[field][result[field]][widgets[field].import_field] : ''
|
|
1767
|
+
}
|
|
1761
1768
|
}
|
|
1762
1769
|
} else {
|
|
1763
|
-
|
|
1770
|
+
if (widgets[field].name == 'dropdown_multi') {
|
|
1771
|
+
myvalue = result[field] ? result[field] : ''
|
|
1772
|
+
} else {
|
|
1773
|
+
myvalue = result[field] ? relations[field][result[field]].zname : ''
|
|
1774
|
+
}
|
|
1764
1775
|
}
|
|
1765
1776
|
if (isRaws) {
|
|
1766
1777
|
t = !callback(result, field) ? result[field] : callback(result, field)
|
|
@@ -4180,6 +4191,8 @@ zRoute.import = async (req, res, MYMODEL) => {
|
|
|
4180
4191
|
let json = Util.jsonSuccess(LANGUAGE['import_success'])
|
|
4181
4192
|
let aliasRelations = []
|
|
4182
4193
|
let selectRelations = ''
|
|
4194
|
+
let isDropdownWidgets = []
|
|
4195
|
+
let dropdownWidgetRelations = {}
|
|
4183
4196
|
for (let key in MYMODEL.widgets) {
|
|
4184
4197
|
if (MYMODEL.widgets[key]) {
|
|
4185
4198
|
if (MYMODEL.widgets[key].name == 'relation' || MYMODEL.widgets[key].name == 'typeahead') {
|
|
@@ -4188,6 +4201,19 @@ zRoute.import = async (req, res, MYMODEL) => {
|
|
|
4188
4201
|
selectRelations += `, (select ${MYMODEL.widgets[key].import_field} from "${MYMODEL.widgets[key].table}" where ${MYMODEL.widgets[key].table}.id = ${MYMODEL.table}.${key} limit 1) as ${key} `
|
|
4189
4202
|
}
|
|
4190
4203
|
}
|
|
4204
|
+
|
|
4205
|
+
if (MYMODEL.widgets[key].name == 'dropdown_multi') {
|
|
4206
|
+
if (MYMODEL.widgets[key].import_field && MYMODEL.widgets[key].import_field != 'id') {
|
|
4207
|
+
isDropdownWidgets.push(key)
|
|
4208
|
+
let cacheName = `${MYMODEL.widgets[key].table}_${MYMODEL.table}___${key}_${companyId}`
|
|
4209
|
+
let datasName = myCache.get(cacheName) || []
|
|
4210
|
+
let objDatas = {}
|
|
4211
|
+
datasName.map((item) => {
|
|
4212
|
+
objDatas[item.zname] = item.id
|
|
4213
|
+
})
|
|
4214
|
+
dropdownWidgetRelations[key] = objDatas
|
|
4215
|
+
}
|
|
4216
|
+
}
|
|
4191
4217
|
}
|
|
4192
4218
|
}
|
|
4193
4219
|
try {
|
|
@@ -4253,12 +4279,26 @@ zRoute.import = async (req, res, MYMODEL) => {
|
|
|
4253
4279
|
table: MYMODEL.widgets[keys[prop]].table,
|
|
4254
4280
|
whereArray: [
|
|
4255
4281
|
//{field:"your_field",option:"=>",value:"12",operator:"AND",type:"text,json,date"}
|
|
4256
|
-
{ field: MYMODEL.widgets[keys[prop]].import_field, option: 'ILIKE', value: value },
|
|
4282
|
+
//{ field: MYMODEL.widgets[keys[prop]].import_field, option: 'ILIKE', value: value },
|
|
4283
|
+
{ field: MYMODEL.widgets[keys[prop]].import_field, option: '=', value: value },
|
|
4257
4284
|
],
|
|
4258
4285
|
})
|
|
4259
4286
|
if (result_alias.id) {
|
|
4260
4287
|
data[keys[prop]] = result_alias.id
|
|
4261
4288
|
}
|
|
4289
|
+
} else if (isDropdownWidgets.includes(keys[prop])) {
|
|
4290
|
+
value = value + ''.trim()
|
|
4291
|
+
let letter = value.charAt(0)
|
|
4292
|
+
if (letter == '[') {
|
|
4293
|
+
let dArray = []
|
|
4294
|
+
let dropdownMultiArrays = JSON.parse(value)
|
|
4295
|
+
dropdownMultiArrays.map((dropdownMultiArray) => {
|
|
4296
|
+
if (dropdownWidgetRelations[keys[prop]][dropdownMultiArray]) {
|
|
4297
|
+
dArray.push(dropdownWidgetRelations[keys[prop]][dropdownMultiArray])
|
|
4298
|
+
}
|
|
4299
|
+
})
|
|
4300
|
+
data[keys[prop]] = JSON.stringify(dArray)
|
|
4301
|
+
}
|
|
4262
4302
|
} else {
|
|
4263
4303
|
let name = MYMODEL.widgets[keys[prop]] && MYMODEL.widgets[keys[prop]].name ? MYMODEL.widgets[keys[prop]].name : ''
|
|
4264
4304
|
if (name != 'virtual') {
|