work.uts 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. // #ifdef APP-ANDROID
  2. import { selectTableData, insertTableData, updateTableData, selectJoinTableData, selectRecordData, selectRecordInfo, selectLatestInfoData, deleteTableData, selectTaskInfo, selectLatestTaskData, selectTaskId } from '@/utils/sqlite'
  3. // #endif
  4. export type Download = {
  5. pdid : number,
  6. workorder : string,
  7. invname : string,
  8. productno : string,
  9. graphid : string,
  10. cardno : string,
  11. processno : string,
  12. ver : string,
  13. updatetime : string,
  14. progress : string,
  15. status : number
  16. }
  17. export type Record = {
  18. sxid : number,
  19. senum : number,
  20. photoitem : string,
  21. productno : string,
  22. part : string,
  23. descb : string,
  24. date : string,
  25. partno : string,
  26. num : number,
  27. status : number,
  28. urlspl : string[],
  29. imgname : string[],
  30. urlpdt : string[]
  31. }
  32. export type TaskProcess = {
  33. id : number
  34. name : string
  35. num : number
  36. step : number
  37. status : number
  38. }
  39. export type JoinRecord = {
  40. sxid : number,
  41. senum : number,
  42. photoitem : string,
  43. productno : string,
  44. part : string,
  45. descb : string,
  46. date : string,
  47. partno : string,
  48. num : number,
  49. status : number,
  50. urlspl : string
  51. imgname : string,
  52. urlpdt : string,
  53. pid : number,
  54. workorder : string,
  55. invname : string
  56. }
  57. export type RecordCalculate = {
  58. photoitem : string,
  59. pid : number,
  60. step : number,
  61. total : number,
  62. status : number
  63. }
  64. //检验任务
  65. export type TaskInfo = {
  66. gxid : string,
  67. itemTitle: string,
  68. photoitemStep : number,
  69. photoitemTotal: number,
  70. photoitemStatus: string,
  71. recordStep : number,
  72. recordTotal : number,
  73. recordStatus : string,
  74. keypointStep : number,
  75. keypointTotal : number
  76. keypointStatus : string
  77. }
  78. export type TaskDownload = {
  79. pdid : number,
  80. gxpk : string,
  81. cardno : string,
  82. productcode : string,
  83. model : string,
  84. workorder : string,
  85. invname : string,
  86. graphid : string,
  87. processno : string,
  88. gxno : string,
  89. ver : string,
  90. lastupdatetime ?: string,
  91. updateuser ?: string,
  92. progress ?: string,
  93. uploadflag : number
  94. }
  95. export function offlineData(data : UTSJSONObject) : Promise<UTSJSONObject> {
  96. return new Promise((resolve, reject) => {
  97. let result = JSON.parseObject(JSON.stringify(data)) as UTSJSONObject
  98. resolve(result)
  99. });
  100. }
  101. export const statusDict = { '1': '未执行', '2': '执行中', '3': '已执行', '4': '执行错误', '5': '已取消' }
  102. export const recordStatusDict = { '1': '未拍照', '2': '拍照中', '3': '拍照完成', '4': '检验不清晰', '5': '拍照取消' }
  103. export const taskType = { '1': '检测任务', '2': '关键工序任务' }
  104. export const funcType = {'1': '新增', '2': '更新', '3': '删除'}
  105. //export const moduleType = {'1': '声像记录', '2':'检验任务', '3':'关键工序','4': '系统管理','5':'其它'}
  106. export async function getList(tableName : string, condition ?: string | null, value ?: string | null, condition2 ?: string | null, value2 ?: string | null, initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  107. // #ifdef APP-ANDROID
  108. const result = await selectTableData(tableName, condition, value, condition2, value2);
  109. console.log(result);
  110. return result;
  111. // #endif
  112. // #ifdef H5
  113. return offlineData(initData)
  114. // #endif
  115. }
  116. export async function getJoinList(dbTable : string, joinTable : string, labels : string, joinCondition : string, lname ?: string, lvalue ?: string, others ?: string) : Promise<UTSJSONObject> {
  117. // #ifdef APP-ANDROID
  118. const result = await selectJoinTableData(dbTable, joinTable, labels, joinCondition, lname, lvalue, others);
  119. console.log(result);
  120. return result;
  121. // #endif
  122. }
  123. export async function updateData(tableName : string, data : string, lname ?: string, lvalue ?: string) : Promise<UTSJSONObject> {
  124. // #ifdef APP-ANDROID
  125. const result = await updateTableData(tableName, data, lname, lvalue);
  126. console.log(result);
  127. addLog({module:tableName,dataid:lvalue,content:'更新数据',status:result?.['errMsg']==='ok'?1:0,params:data})
  128. return result;
  129. // #endif
  130. }
  131. export async function getRecordCalculate(tableName : string, value ?: string | null, initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  132. // #ifdef APP-ANDROID
  133. const result = await selectRecordData(tableName, value);
  134. console.log(result);
  135. return result;
  136. // #endif
  137. // #ifdef H5
  138. return offlineData(initData)
  139. // #endif
  140. }
  141. export async function getRecordInfoList(initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  142. // #ifdef APP-ANDROID
  143. const result = await selectRecordInfo();
  144. console.log(result);
  145. return result;
  146. // #endif
  147. // #ifdef H5
  148. return offlineData(initData)
  149. // #endif
  150. }
  151. /**
  152. * 保存媒体信息数据到数据库
  153. * @param data MediaInfoData类型的数据
  154. * @returns Promise<UTSJSONObject> 保存结果
  155. */
  156. export async function saveMediaInfo(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  157. // #ifdef APP-ANDROID
  158. // 表名
  159. const tableName = 'app_media_info';
  160. // 构造插入的数据字符串,注意数据库字段名和类型
  161. const values = `'${data?.getString('workorder') ?? ''}','${data?.getString('invname') ?? ''}','${data?.getString('productcode') ?? ''}','${data?.getString('cardno') ?? ''}','${data?.getString('model') ?? ''}','${data?.getString('graphid') ?? ''}','${data?.getString('ver') ?? ''}','${data?.getString('phase') ?? ''}','${data?.getString('processno') ?? ''}','${data?.getString('progress') ?? ''}',${data?.getNumber('status') ?? 1},'${data?.getString('createtime') ?? ''}',${data?.getNumber('createuser') ?? 0},'${data?.getString('updatetime') ?? ''}',${data?.getNumber('updateuser') ?? 0}, 0`;
  162. // 构造字段名字符串
  163. const fields = 'workorder,invname,productno,cardno,model,graphid,ver,phase,processno,progress,status,createtime,createuser,updatetime,updateuser,uploadflag';
  164. try {
  165. // 调用sqlite的插入方法
  166. const result = await insertTableData(tableName, values, fields);
  167. console.log('保存app_media_info成功:', result);
  168. addLog({module:tableName,dataid:0,content:'保存媒体信息',status:1,params:values})
  169. return result;
  170. } catch (error) {
  171. console.error('保存app_media_info失败:', error);
  172. addLog({module:tableName,dataid:0,content:'保存媒体信息失败',status:0,params:values})
  173. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  174. }
  175. // #endif
  176. // #ifdef H5
  177. return offlineData({ success: true, data: [] } as UTSJSONObject);
  178. // #endif
  179. }
  180. /**
  181. * 保存媒体信息数据到数据库
  182. * @param data saveMediaRecord类型的数据
  183. * @returns Promise<UTSJSONObject> 保存结果
  184. */
  185. export async function saveMediaRecord(values : string) : Promise<UTSJSONObject> {
  186. // #ifdef APP-ANDROID
  187. // 表名
  188. const tableName = 'app_media_record';
  189. // 构造字段名字符串
  190. const fields = 'senum,photoitem,productno,part,partno,pk,exampleid,descb,num,status,date,urlspl,imgname,urlpdt,createtime,createuser,updatetime,updateuser,pid';
  191. try {
  192. // 调用sqlite的插入方法
  193. const result = await insertTableData(tableName, values, fields);
  194. console.log('保存app_media_record成功:', result);
  195. addLog({module:tableName,dataid:0,content:'保存媒体记录',status:1,params:values})
  196. return result;
  197. } catch (error) {
  198. console.error('保存app_media_record失败:', error);
  199. addLog({module:tableName,dataid:0,content:'保存媒体记录失败',status:0,params:values})
  200. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  201. }
  202. // #endif
  203. // #ifdef H5
  204. return offlineData({ success: true, data: [] } as UTSJSONObject);
  205. // #endif
  206. }
  207. export async function getLatestRecord(productNo:string , initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  208. // #ifdef APP-ANDROID
  209. const result = await selectLatestInfoData(productNo);
  210. console.log(result);
  211. return result;
  212. // #endif
  213. // #ifdef H5
  214. return offlineData({ success: true, data: [] } as UTSJSONObject)
  215. // #endif
  216. }
  217. export async function removeTableData(tableName:string, field: string, value: string) : Promise<UTSJSONObject> {
  218. // #ifdef APP-ANDROID
  219. try {
  220. // 调用sqlite的删除方法
  221. const result = await deleteTableData(tableName, field, value);
  222. console.log('删除数据成功:', result);
  223. addLog({module:tableName,dataid:1,content:'删除数据成功',status:1,params:value})
  224. return result;
  225. } catch (error) {
  226. console.error('删除数据失败:', error);
  227. addLog({module:tableName,dataid:1,content:'删除数据失败',status:0,params:value})
  228. return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject;
  229. }
  230. // #endif
  231. // #ifdef H5
  232. return offlineData({ success: true, data: [] } as UTSJSONObject);
  233. // #endif
  234. }
  235. export async function removeInfoAndRecord(value:string) : Promise<UTSJSONObject> {
  236. // #ifdef APP-ANDROID
  237. try {
  238. // 调用sqlite的删除方法
  239. const result = await deleteTableData('app_media_record', 'pid', value);
  240. addLog({module:'app_media_record',dataid:1,content:'删除数据成功',status:1,params:value,updatetime: "strftime('%Y-%m-%d %H:%M:%S', 'now')"})
  241. const result2 = await deleteTableData('app_media_info', 'pdid', value);
  242. addLog({module:'app_media_info',dataid:1,content:'删除数据成功',status:1,params:value})
  243. return result;
  244. } catch (error) {
  245. console.error('删除数据失败:', error);
  246. addLog({module:'app_media_record',dataid:1,content:'删除数据失败',status:0,params:value})
  247. return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject;
  248. }
  249. // #endif
  250. // #ifdef H5
  251. return offlineData({ success: true, data: [] } as UTSJSONObject);
  252. // #endif
  253. }
  254. export async function addLog(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  255. const tableName = 'app_log';
  256. // #ifdef APP-ANDROID
  257. const params = data?.getString('params')?.replace(/['"]/g, '')
  258. const dataid = data?.getNumber('dataid') ?? 0
  259. let fields = 'module,dataid,content,status,params';
  260. let values = `'${data?.getString('module') ?? ''}',${data?.getNumber('dataid') ?? 0},'${data?.getString('content') ?? ''}',${data?.getNumber('status') ?? 0},'${params}'`;
  261. if(dataid === 0){
  262. fields = fields + ",createuser,createtime"
  263. values = values + `,'${data?.getString('createuser') ?? 0}',strftime('%Y-%m-%d %H:%M:%S', 'now')`
  264. }else{
  265. fields = fields + ",updateuser,updatetime"
  266. values = values + `,'${data?.getString('updateuser') ?? 0}',strftime('%Y-%m-%d %H:%M:%S', 'now')`
  267. }
  268. const result = await insertTableData(tableName, values, fields);
  269. console.log(result);
  270. return result;
  271. // #endif
  272. // #ifdef H5
  273. return offlineData({ success: true, data: [] } as UTSJSONObject);
  274. // #endif
  275. }
  276. export async function saveTaskInfo(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  277. // #ifdef APP-ANDROID
  278. // 表名
  279. const tableName = 'app_task_info';
  280. // 构造插入的数据字符串,注意数据库字段名和类型
  281. const values = `'${data?.getString('gxpk') ?? ''}','${data?.getString('pk_serial') ?? ''}','${data?.getString('cardno') ?? ''}','${data?.getString('productcode') ?? ''}','${data?.getString('model') ?? ''}','${data?.getString('workorder') ?? ''}','${data?.getString('invname') ?? ''}','${data?.getString('graphid') ?? ''}','${data?.getString('processno') ?? ''}','${data?.getString('gxno') ?? ''}', '${data?.getString('ver') ?? ''}','${data?.getString('lastupdatetime') ?? ''}','${data?.getString('updateuser') ?? ''}', 0`;
  282. // 构造字段名字符串
  283. const fields = 'gxpk,pk_serial,cardno,productcode,model,workorder,invname,graphid,processno,gxno,ver,lastupdatetime,updateuser,uploadflag';
  284. try {
  285. // 调用sqlite的插入方法
  286. const result = await insertTableData(tableName, values, fields);
  287. console.log('保存app_task_info成功:', result);
  288. addLog({module:tableName,dataid:0,content:'保存检验任务信息成功',status:1,params:values})
  289. return result;
  290. } catch (error) {
  291. console.error('保存app_task_info失败:', error);
  292. addLog({module:tableName,dataid:0,content:'保存检验任务信息失败',status:0,params:values})
  293. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  294. }
  295. // #endif
  296. // #ifdef H5
  297. return offlineData({ success: true, data: [] } as UTSJSONObject);
  298. // #endif
  299. }
  300. /**
  301. * 保存检验任务信息里的图片数据到数据库
  302. * @param data saveTaskPhoto类型的数据
  303. * @returns Promise<UTSJSONObject> 保存结果
  304. */
  305. export async function saveTaskPhoto(values : string) : Promise<UTSJSONObject> {
  306. // #ifdef APP-ANDROID
  307. // 表名
  308. const tableName = 'app_task_photo';
  309. // 构造字段名字符串
  310. const fields = 'pdid,pk,photographpoint,photographdescription,photourl,exampleurl,photoname,fk_qcRecord,fk_prodcode,prodno,fk_creator,fks_operator,operator,processStep,fk_processTask,cs,ts';
  311. try {
  312. // 调用sqlite的插入方法
  313. const result = await insertTableData(tableName, values, fields);
  314. console.log('保存app_task_photo成功:', result);
  315. addLog({module:tableName,dataid:0,content:'保存任务图像记录',status:1,params:values})
  316. return result;
  317. } catch (error) {
  318. console.error('保存app_task_photo失败:', error);
  319. addLog({module:tableName,dataid:0,content:'保存任务图像记录失败',status:0,params:values})
  320. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  321. }
  322. // #endif
  323. // #ifdef H5
  324. return offlineData({ success: true, data: [] } as UTSJSONObject);
  325. // #endif
  326. }
  327. export async function getTaskInfoList(initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  328. // #ifdef APP-ANDROID
  329. const result = await selectTaskInfo();
  330. console.log(result);
  331. return result;
  332. // #endif
  333. // #ifdef H5
  334. return offlineData(initData)
  335. // #endif
  336. }
  337. export async function saveTaskKeyProcess(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  338. // #ifdef APP-ANDROID
  339. // 表名
  340. const tableName = 'app_task_keyprocess';
  341. // 构造插入的数据字符串,注意数据库字段名和类型
  342. const values = `'${data?.getNumber('pdid') ?? 0}','${data?.getString('pk') ?? ''}','${data?.getString('testapparatus') ?? ''}','${data?.getString('tableid') ?? ''}','${data?.getString('testrequirelower') ?? ''}','${data?.getString('testrequireupper') ?? ''}','${data?.getString('parametername') ?? ''}','${data?.getString('parameterorder') ?? ''}','${data?.getString('measureunit') ?? ''}','${data?.getString('parameterinstruction') ?? ''}', '${data?.getString('parameterid') ?? ''}','${data?.getString('fk_creator') ?? ''}','${data?.getString('fk_prodcode') ?? ''}','${data?.getString('prodno') ?? ''}','${data?.getString('processstep') ?? ''}','${data?.getString('fk_processtask') ?? ''}','${data?.getString('measuredvaluemin') ?? ''}','${data?.getString('measuredvaluemax') ?? ''}','${data?.getString('fks_operator') ?? ''}','${data?.getString('cs') ?? ''}','${data?.getString('ts') ?? ''}'`;
  343. // 构造字段名字符串
  344. const fields = 'pdid,pk,testapparatus,tableid,testrequirelower,testrequireupper,parametername,parameterorder,measureunit,parameterinstruction,parameterid,fk_creator,fk_prodcode,prodno,processstep,fk_processtask,measuredvaluemin,measuredvaluemax,fks_operator,cs,ts';
  345. try {
  346. // 调用sqlite的插入方法
  347. const result = await insertTableData(tableName, values, fields);
  348. console.log('保存app_task_info成功:', result);
  349. addLog({module:tableName,dataid:0,content:'保存检验任务信息成功',status:1,params:values})
  350. return result;
  351. } catch (error) {
  352. console.error('保存app_task_info失败:', error);
  353. addLog({module:tableName,dataid:0,content:'保存检验任务信息失败',status:0,params:values})
  354. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  355. }
  356. // #endif
  357. // #ifdef H5
  358. return offlineData({ success: true, data: [] } as UTSJSONObject);
  359. // #endif
  360. }
  361. export async function saveTaskRecord(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  362. // #ifdef APP-ANDROID
  363. // 表名
  364. const tableName = 'app_task_record';
  365. // 构造插入的数据字符串,注意数据库字段名和类型
  366. const values = `'${data?.getNumber('pdid') ?? 0}','${data?.getString('pk') ?? ''}','${data?.getString('fk_invcode') ?? ''}','${data?.getString('no') ?? ''}','${data?.getString('invcode') ?? ''}','${data?.getString('invname') ?? ''}','${data?.getString('processStep') ?? ''}','${data?.getString('fk_processTask') ?? ''}','${data?.getString('checkTarget') ?? ''}',${data?.getNumber('checknum') ?? 0}, ${data?.getNumber('oknum') ?? 0},${data?.getNumber('ngnum') ?? 0},'${data?.getString('status') ?? ''}','${data?.getString('result') ?? ''}','${data?.getString('checkTime') ?? ''}','${data?.getString('fk_creator') ?? ''}','${data?.getString('cs') ?? ''}','${data?.getString('ts') ?? ''}'`;
  367. // 构造字段名字符串
  368. const fields = 'pdid,pk,fk_invcode,no,invcode,invname,processStep,fk_processTask,checkTarget,checknum,oknum,ngnum,status,result,checkTime,fk_creator,cs,ts';
  369. try {
  370. // 调用sqlite的插入方法
  371. const result = await insertTableData(tableName, values, fields);
  372. console.log('保存app_task_record成功:', result);
  373. addLog({module:tableName,dataid:0,content:'保存检验任务记录信息成功',status:1,params:values})
  374. return result;
  375. } catch (error) {
  376. console.error('保存app_task_record失败:', error);
  377. addLog({module:tableName,dataid:0,content:'保存检验任务记录信息失败',status:0,params:values})
  378. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  379. }
  380. // #endif
  381. // #ifdef H5
  382. return offlineData({ success: true, data: [] } as UTSJSONObject);
  383. // #endif
  384. }
  385. export async function saveTaskRecordItem(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  386. // #ifdef APP-ANDROID
  387. // 表名
  388. const tableName = 'app_task_record_item';
  389. // 构造插入的数据字符串,注意数据库字段名和类型
  390. const values = `'${data?.getNumber('psxid') ?? 0}','${data?.getString('pk') ?? ''}','${data?.getString('fk_qcRecord') ?? ''}','${data?.getString('fk_prodcode') ?? ''}','${data?.getString('prodno') ?? ''}','${data?.getString('name') ?? ''}','${data?.getString('no') ?? ''}','${data?.getString('nature') ?? ''}','${data?.getString('unit') ?? ''}',${data?.getNumber('maxNum') ?? 0}, ${data?.getNumber('maxNum') ?? 0},'${data?.getString('status') ?? ''}','${data?.getString('memo') ?? ''}','${data?.getString('measuredvalue') ?? ''}','${data?.getString('result') ?? ''}','${data?.getString('cs') ?? ''}','${data?.getString('ts') ?? ''}'`;
  391. // 构造字段名字符串
  392. const fields = 'psxid,pk,fk_qcRecord,fk_prodcode,prodno,prodno,no,nature,unit,maxNum,minNum,status,memo,measuredvalue,result,cs,ts';
  393. try {
  394. // 调用sqlite的插入方法
  395. const result = await insertTableData(tableName, values, fields);
  396. console.log('保存app_task_record_item成功:', result);
  397. addLog({module:tableName,dataid:0,content:'保存检验任务项目信息成功',status:1,params:values})
  398. return result;
  399. } catch (error) {
  400. console.error('保存app_task_record_item失败:', error);
  401. addLog({module:tableName,dataid:0,content:'保存检验任务项目信息失败',status:0,params:values})
  402. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  403. }
  404. // #endif
  405. // #ifdef H5
  406. return offlineData({ success: true, data: [] } as UTSJSONObject);
  407. // #endif
  408. }
  409. export async function getLatestTask(productNo:string, initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  410. // #ifdef APP-ANDROID
  411. const result = await selectLatestTaskData(productNo);
  412. console.log(result);
  413. return result;
  414. // #endif
  415. // #ifdef H5
  416. return offlineData({ success: true, data: [] } as UTSJSONObject)
  417. // #endif
  418. }
  419. export async function removeTaskAndRecord(value:string) : Promise<UTSJSONObject> {
  420. // #ifdef APP-ANDROID
  421. try {
  422. // 调用sqlite的删除方法
  423. const taskId = await selectTaskId('app_task_info', 'pdid', 'gxpk', value);
  424. const result = await deleteTableData('app_task_info', 'pdid', taskId);
  425. addLog({module:'app_task_info',dataid:1,content:'删除数据成功',status:1,params:value,updatetime: "strftime('%Y-%m-%d %H:%M:%S', 'now')"})
  426. const result2 = await deleteTableData('app_task_photo', 'pdid', taskId);
  427. addLog({module:'app_task_photo',dataid:1,content:'删除数据成功',status:1,params:value})
  428. const recordId = await selectTaskId('app_task_record', 'sxid', 'pdid', taskId);
  429. const result3 = await deleteTableData('app_task_record_item', 'psxid', recordId);
  430. addLog({module:'app_task_record_item',dataid:1,content:'删除数据成功',status:1,params:value})
  431. const result4 = await deleteTableData('app_task_record', 'sxid', recordId);
  432. addLog({module:'app_task_record',dataid:1,content:'删除数据成功',status:1,params:value})
  433. return {};
  434. } catch (error) {
  435. console.error('删除数据失败:', error);
  436. addLog({module:'app_media_record',dataid:1,content:'删除数据失败',status:0,params:value})
  437. return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject;
  438. }
  439. // #endif
  440. // #ifdef H5
  441. return offlineData({ success: true, data: [] } as UTSJSONObject);
  442. // #endif
  443. }