add.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. import common from '../../utils/util';
  2. import main from '../../utils/main';
  3. const app = getApp();
  4. var arrTag = [];
  5. var tempCursor = undefined,
  6. btnName = "";
  7. var arrSoundMark = [];
  8. var isUnload = true;
  9. var isEdit = true;
  10. var isSave = true;
  11. var interval;
  12. var timeoutUploadImage = 0;
  13. Page({
  14. data: {
  15. PracticeTimeStr: "智能安排",
  16. HiddenFieldEdit: true,
  17. FieldContent: "",
  18. SoundSign: "[读]",
  19. LineSign: "[线]",
  20. IsTodayStudy: false,
  21. BtnArray: ["+", "-", "×", "÷", "=", "<", ">"],
  22. },
  23. onLoad: function (options) {
  24. var that = this;
  25. var fieldNumber = 0;
  26. if (options.fieldid)
  27. fieldNumber = options.fieldid;
  28. that.setData({
  29. Containnerheight: main.getWindowHeight(),
  30. UpdateType: options.type,
  31. MiaoguoCardID: options.id,
  32. FieldNumber: fieldNumber,
  33. });
  34. var list = app.globalData.CardList;
  35. for (var i = 0; i < list.length; i++) {
  36. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  37. wx.setStorageSync("TempCardInfo", list[i]);
  38. break;
  39. }
  40. }
  41. app.globalData.TempFieldNumber = 0;
  42. app.globalData.TempMiaoguoCardID = that.data.MiaoguoCardID;
  43. },
  44. onShow: function () {
  45. var that = this;
  46. if (that.data.UpdateType == "add") {
  47. that.initAddCard();
  48. }
  49. else {
  50. var card = {}, content = "";
  51. var list = app.globalData.CardList;
  52. for (var i = 0; i < list.length; i++) {
  53. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  54. card = main.changeStringToView(list[i].Content);
  55. card.MiaoguoCardID = list[i].MiaoguoCardID;
  56. card.LimitTime = list[i].LimitTime;
  57. if (that.data.FieldNumber && that.data.FieldNumber > 0)
  58. content = main.encryptUrl(list[i].Content[that.data.FieldNumber].Content);
  59. break;
  60. }
  61. }
  62. that.setData({
  63. MiaoguoCardID: card.MiaoguoCardID,
  64. Field: card.Field,
  65. Tags: card.Tags,
  66. FieldContent: content,
  67. });
  68. if (that.data.UpdateType != "add2") {
  69. wx.setNavigationBarTitle({
  70. title: '编辑题卡'
  71. });
  72. }
  73. if (that.data.UpdateType == "edit3") {
  74. that.gotoAddItem({ currentTarget: { dataset: { fieldid: that.data.FieldNumber } } });
  75. }
  76. }
  77. },
  78. onHide: function () {
  79. //用于恢复未保存的新题卡
  80. console.log("onHide");
  81. var that = this;
  82. if (!that.data.HiddenFieldEdit) {
  83. that.updateField();
  84. }
  85. if (!(that.data && that.data.Field && that.data.Field[1].length == 0
  86. && that.data.Field[2].length == 0
  87. && that.data.Field[3].length == 0)) {
  88. if (that.data.UpdateType == "add" || that.data.UpdateType == "add2") {
  89. var card = {};
  90. card.MiaoguoCardID = that.data.MiaoguoCardID;
  91. card.Content = [];
  92. var param1 = {};
  93. param1 = that.formatField(that.data.Field);
  94. for (var i = 0; i < 4; i++) {
  95. var obj = {};
  96. obj.ContentType = i;
  97. if (i == 0)
  98. obj.Content = that.data.Tags;
  99. else
  100. obj.Content = param1["Field" + i];
  101. card.Content.push(obj);
  102. }
  103. wx.setStorageSync("TempCardNoSaved", card);
  104. }
  105. }
  106. },
  107. onUnload: function () {
  108. this.onHide();
  109. var card = wx.getStorageSync("TempCardInfo");
  110. if (card) {
  111. var list = app.globalData.CardList;
  112. for (var i = 0; i < list.length; i++) {
  113. if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  114. list[i] = card;
  115. break;
  116. }
  117. }
  118. app.globalData.CardList = list;
  119. wx.removeStorageSync("TempCardInfo");
  120. }
  121. clearInterval(interval);
  122. clearTimeout(timeoutUploadImage);
  123. },
  124. onClose: function () {
  125. wx.navigateBack({
  126. delta: 1,
  127. });
  128. },
  129. gotoAddItem: function (e) {
  130. var that = this;
  131. var fieldid = e.currentTarget.dataset.fieldid;
  132. var content;
  133. var list = app.globalData.CardList;
  134. for (var i = 0; i < list.length; i++) {
  135. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  136. content = main.encryptUrl(list[i].Content[fieldid].Content);
  137. break;
  138. }
  139. }
  140. wx.setStorageSync("TempCardInfoAddItem", content);
  141. that.setData({
  142. HiddenFieldEdit: false,
  143. Focus: true,
  144. FieldNumber: fieldid,
  145. FieldContent: content,
  146. });
  147. wx.setNavigationBarTitle({
  148. title: '编辑 段落' + fieldid,
  149. });
  150. },
  151. onSearch: function (e) {
  152. app.globalData.TempFieldNumber = 0;
  153. wx.navigateTo({
  154. url: './searchWeb',
  155. })
  156. },
  157. onPreview: function (e) {
  158. var that = this;
  159. if (that.data.Field[1] == "") {
  160. wx.showToast({
  161. title: '第一段必填',
  162. image: "../images/universalpic_wrong_white_120x120.png",
  163. });
  164. }
  165. else {
  166. wx.navigateTo({
  167. url: './preview?type=preview&id=' + this.data.MiaoguoCardID,
  168. });
  169. }
  170. },
  171. switch1Change(e) {
  172. var str = "智能安排";
  173. if (e.detail.value) {
  174. str = "今日必练";
  175. }
  176. this.setData({
  177. IsTodayStudy: e.detail.value,
  178. });
  179. },
  180. saveCard: function () {
  181. var that = this;
  182. if (that.data.Field[1] == "") {
  183. wx.showToast({
  184. title: '第一段必填',
  185. image: "../images/universalpic_wrong_white_120x120.png",
  186. });
  187. }
  188. else {
  189. if (isSave) {
  190. isSave = false;
  191. setTimeout(function () {
  192. isSave = true;
  193. }, 5000);
  194. if (that.checkImageCount(that.data.Field)){
  195. that.uploadImageAll(that.data.Field, function (success, field) {
  196. if (success) {
  197. that.data.Field = field;
  198. var userid = app.globalData.userInfo.UserID;
  199. var isTodayStudy = 0;
  200. if (that.data.IsTodayStudy && that.data.UpdateType == "add2")
  201. isTodayStudy = 1;
  202. var tags = [];
  203. for (var i = 0; i < that.data.Tags.length; i++) {
  204. if (that.data.Tags[i])
  205. tags.push(that.data.Tags[i]);
  206. }
  207. var param1 = {};
  208. param1 = that.formatField(that.data.Field);
  209. param1.Tags = tags;
  210. param1.IsTodayStudy = isTodayStudy;
  211. param1.ID = that.data.MiaoguoCardID;
  212. that.saveLocalCardList(param1);
  213. wx.hideLoading();
  214. wx.showLoading({
  215. title: '保存数据请稍候',
  216. mask: true,
  217. });
  218. timeoutUploadImage = setTimeout(function () {
  219. wx.hideLoading();
  220. }, 15000);
  221. main.postData('AddMiaoguoCard?Type=' + that.data.UpdateType + '&UserID=' + userid, param1, function (data) {
  222. wx.removeStorageSync("TempCardNoSaved");
  223. if (that.data.UpdateType == "edit" || that.data.UpdateType == "edit2" || that.data.UpdateType == "edit3") {
  224. that.onClose();
  225. }
  226. else {
  227. wx.hideLoading();
  228. wx.showToast({
  229. title: '已保存!',
  230. image: "../images/universalpic_saved_white_120x120.png",
  231. });
  232. if (that.data.UpdateType == "add2") {
  233. that.initAddCard();
  234. }
  235. var taskToday = app.globalData.TaskToday;
  236. taskToday.CardNumber++;
  237. app.globalData.TaskToday = taskToday;
  238. }
  239. wx.removeStorageSync("TempCardInfo");
  240. });
  241. }
  242. else {
  243. wx.showToast({
  244. title: '图片上传失败1',
  245. mask: true,
  246. });
  247. }
  248. });
  249. }
  250. }
  251. else {
  252. wx.showToast({
  253. title: '点击太频繁',
  254. mask: true,
  255. });
  256. }
  257. }
  258. },
  259. formatField: function (field) {
  260. var result = {};
  261. for (var i = 1; i <= 3; i++) {
  262. result["Field" + i] = "";
  263. for (var key in field[i]) {
  264. var item = field[i][key];
  265. var str = "";
  266. if (item.Type == "image") {
  267. str = "[图 w='" + item.Width + "' h='" + item.Height + "']" + item.Content + "[/图]";
  268. }
  269. else if (item.Type == "line") {
  270. for (var j = 0; j < item.Content.length; j++) {
  271. if (item.Content[j].key == "normal")
  272. str += item.Content[j].value;
  273. if (item.Content[j].key == "line") {
  274. str += "[线]" + item.Content[j].value + "[/线]";
  275. }
  276. }
  277. }
  278. else if (item.Type == "sound") {
  279. if (item.SoundMark)
  280. str = "[读 src='" + item.SoundMark + "']" + item.Content + "[/读]";
  281. else
  282. str = "[读]" + item.Content + "[/读]";
  283. }
  284. else if (item.Type == "normal") {
  285. str = item.Content;
  286. }
  287. else if (item.Type == "return") {
  288. str = "\n";
  289. }
  290. result["Field" + i] += str;
  291. }
  292. result["Field" + i] = main.changeViewToString(result["Field" + i]);
  293. }
  294. return result;
  295. },
  296. checkImageCount:function(arr){
  297. var count=0;
  298. for (var i = 0; i < arr.length; i++) {
  299. for (var j = 0; j < arr[i].length; j++) {
  300. if (arr[i][j].Type == "image" && arr[i][j].Content) {
  301. count++;
  302. }
  303. }
  304. }
  305. if (count>3){
  306. wx.showToast({
  307. title: '只能上传三张图片',
  308. });
  309. return false;
  310. }
  311. else
  312. return true;
  313. },
  314. uploadImageAll: function (arr, callback) {
  315. var that = this;
  316. var b = false;
  317. var arrSource = [], arrResult = [];
  318. for (var i = 0; i < arr.length; i++) {
  319. for (var j = 0; j < arr[i].length; j++) {
  320. if (arr[i][j].Type == "image" && arr[i][j].Content) {
  321. arrSource.push(arr[i][j].Content);
  322. if (arr[i][j].ContentServer.indexOf(app.globalData.uploadImageUrl) >= 0
  323. || arr[i][j].ContentServer.indexOf("baidu.com") >= 0) {
  324. var result={};
  325. result.Source = arr[i][j].ContentServer;
  326. result.Target = arr[i][j].ContentServer;
  327. arrResult.push(result);
  328. }
  329. else {
  330. var source = arr[i][j].Content;
  331. that.uploadImage(source, function (data) {
  332. if (data){
  333. data=JSON.parse(data);
  334. var result=data.result;
  335. result.Target = app.globalData.uploadImageUrl + result.Target;
  336. arrResult.push(result);
  337. }
  338. });
  339. }
  340. b = true;
  341. }
  342. }
  343. }
  344. if (b) {
  345. wx.showLoading({
  346. title: '上传图片请稍候',
  347. mask: true,
  348. });
  349. timeoutUploadImage = setTimeout(function () {
  350. wx.hideLoading();
  351. }, 15000);
  352. }
  353. interval = setInterval(function () {
  354. //console.log(arrResult.length);
  355. if (arrResult.length >= arrSource.length) {
  356. wx.hideLoading();
  357. console.log("arrResult:" + JSON.stringify(arrResult));
  358. clearInterval(interval);
  359. var success=true;
  360. var ari = 0;
  361. for (var i = 0; i < arr.length; i++) {
  362. for (var j = 0; j < arr[i].length; j++) {
  363. if (arr[i][j].Type == "image" && arr[i][j].Content) {
  364. var tempUrl = arr[i][j].Content;
  365. var serverUrl = "";
  366. for(var k=0;k<arrResult.length;k++){
  367. if (tempUrl.indexOf(arrResult[k].Source)>=0){
  368. serverUrl = arrResult[k].Target;
  369. break;
  370. }
  371. }
  372. //console.log("serverUrl:" + serverUrl);
  373. //console.log("tempUrl:" + tempUrl);
  374. main.saveTempImage(serverUrl, tempUrl);
  375. arr[i][j].Content = serverUrl;
  376. arr[i][j].ContentServer = serverUrl;
  377. if (serverUrl==""){
  378. success=false;
  379. break;
  380. }
  381. }
  382. }
  383. }
  384. //console.log(JSON.stringify(arr));
  385. callback(success,arr);
  386. }
  387. }, 500);
  388. },
  389. uploadImage: function (file, callback) {
  390. var url = common.Encrypt("MiaoguoUploadFile2");
  391. wx.uploadFile({
  392. url: app.globalData.serverUrl + url,
  393. filePath: file,
  394. name: 'file',
  395. success(res) {
  396. callback(res.data);
  397. },
  398. fail: function (err) {
  399. wx.hideLoading();
  400. wx.showModal({
  401. title: '上传图片失败',
  402. showCancel: false,
  403. content: JSON.stringify(err),
  404. });
  405. }
  406. });
  407. },
  408. saveLocalCardList: function (param1) {
  409. var that = this;
  410. var list = app.globalData.CardList;
  411. for (var i = 0; i < list.length; i++) {
  412. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  413. for (var j = 0; j < 4; j++) {
  414. if (j == 0) {
  415. if (param1.tags && param1.tags.length > 0)
  416. list[i].Content[j].Content = param1.tags.join(",");
  417. }
  418. else
  419. list[i].Content[j].Content = param1["Field" + j];
  420. }
  421. app.globalData.CardList = list;
  422. break;
  423. }
  424. }
  425. },
  426. initAddCard: function () {
  427. var card = {};
  428. card.MiaoguoCardID = 0;
  429. card.Content = [];
  430. for (var i = 0; i < 4; i++) {
  431. var obj = {};
  432. obj.ContentType = i;
  433. obj.Content = [];
  434. card.Content.push(obj);
  435. }
  436. app.globalData.CardList = [card];
  437. this.setData({
  438. MiaoguoCardID: 0,
  439. Field: [[], [], [], []],
  440. Tags: [],
  441. UpdateType: "add2",
  442. });
  443. },
  444. onBindError: function (e) {
  445. for (var i = 1; i < this.data.Field.length; i++) {
  446. for (var j = 0; j < this.data.Field[i].length; j++) {
  447. if (this.data.Field[i][j].Type == "image") {
  448. this.data.Field[i][j].Url = this.data.Field[i][j].Content;
  449. }
  450. }
  451. }
  452. this.setData({
  453. Field: this.data.Field,
  454. });
  455. },
  456. deleteItem: function (e) {
  457. var that = this;
  458. var index = e.currentTarget.dataset.id;
  459. wx.showModal({
  460. title: '提醒',
  461. content: '记号“' + that.data.Tags[index] + '”要删除吗?',
  462. success(res) {
  463. if (res.confirm) {
  464. that.data.Tags.splice(index, 1);
  465. that.setData({
  466. Tags: that.data.Tags,
  467. });
  468. var list = app.globalData.CardList;
  469. for (var i = 0; i < list.length; i++) {
  470. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  471. list[i].Content[0].Content = that.data.Tags;
  472. break;
  473. }
  474. }
  475. app.globalData.CardList = list;
  476. }
  477. }
  478. });
  479. },
  480. onGotoList: function () {
  481. var that = this;
  482. if (that.data.Field[1] != "" && that.data.Field[2] != "" && that.data.Field[2] != "") {
  483. wx.showModal({
  484. title: '尚未保存',
  485. content: '即将前往“全部题卡”,但当前题卡尚未保存,按继续将放弃保存。',
  486. confirmText: '继续',
  487. success(res) {
  488. if (res.confirm) {
  489. goto();
  490. }
  491. }
  492. });
  493. }
  494. else {
  495. goto();
  496. }
  497. function goto() {
  498. wx.showLoading({
  499. title: '请稍候',
  500. });
  501. setTimeout(function () {
  502. wx.hideLoading();
  503. }, 5000);
  504. var url = 'GetMiaoguoCardList?UserID=' + app.globalData.userInfo.UserID;
  505. main.getData(url, function (data) {
  506. wx.hideLoading();
  507. if (data) {
  508. app.globalData.CardList = data.List;
  509. wx.redirectTo({
  510. url: './searchCardList?type=0&Count=' + data.Count,
  511. })
  512. }
  513. });
  514. }
  515. },
  516. //段落编辑**************************
  517. //字段输入
  518. bindinputField: function (e) {
  519. //console.log("bindinputField:" + e.detail.value + " isEdit:" + isEdit);
  520. var that = this;
  521. if (app.globalData.IsAndroid && !isEdit) {
  522. return;
  523. }
  524. this.setData({
  525. FieldContent: e.detail.value,
  526. });
  527. },
  528. //加符号
  529. addSymbol: function (e) {
  530. //console.log("addSymbol");
  531. isEdit = true;
  532. var that = this;
  533. btnName = e.currentTarget.dataset.id;
  534. if (btnName == "[读]") {
  535. this.setData({
  536. SoundSign: "[/读]",
  537. });
  538. } else if (btnName == "[/读]") {
  539. this.setData({
  540. SoundSign: "[读]",
  541. });
  542. } else if (btnName == "[线]") {
  543. this.setData({
  544. LineSign: "[/线]",
  545. });
  546. } else if (btnName == "[/线]") {
  547. this.setData({
  548. LineSign: "[线]",
  549. });
  550. }
  551. if (!this.data.Focus) {
  552. this.data.FieldContent = this.data.FieldContent + btnName;
  553. this.setData({
  554. FieldContent: this.data.FieldContent,
  555. });
  556. }
  557. //console.log("addSymbol:" + this.data.FieldContent);
  558. setTimeout(function () {
  559. that.setData({
  560. Focus: true,
  561. });
  562. }, 300);
  563. },
  564. //焦点聚焦
  565. onBindFocus: function () {
  566. this.setData({
  567. Focus: true,
  568. });
  569. },
  570. //失焦
  571. onBindblur: function (e) {
  572. var that = this;
  573. //console.log("onBindblur:" + isEdit + " Filed:" + this.data.FieldContent);
  574. if (app.globalData.IsAndroid && !isEdit) {
  575. setTimeout(function () {
  576. isEdit = true;
  577. console.log("onBindblur2:" + isEdit);
  578. }, 500);
  579. return;
  580. }
  581. isEdit = false;
  582. if (app.globalData.IsAndroid && !isEdit) {
  583. setTimeout(function () {
  584. isEdit = true;
  585. console.log("onBindblur2:" + isEdit);
  586. }, 500);
  587. }
  588. //console.log("onBindblur:"+isEdit);
  589. this.updateField();
  590. tempCursor = e.detail.cursor;
  591. //console.log("tempCursor:" + tempCursor);
  592. if (tempCursor == undefined)
  593. tempCursor = this.data["FieldContent"].length;
  594. var str1 = "",
  595. str2 = "";
  596. if (this.data.FieldContent.length > 0) {
  597. str1 = this.data.FieldContent.substr(0, tempCursor);
  598. str2 = this.data.FieldContent.substring(tempCursor, this.data.FieldContent.length);
  599. }
  600. //console.log("str1:" + str1);
  601. //console.log("str2:" + str2);
  602. var cur = 1;
  603. if (btnName == "[读]" || btnName == "[线]") {
  604. cur = 3;
  605. } else if (btnName == "[/读]" || btnName == "[/线]") {
  606. cur = 4;
  607. } else if (btnName == "(   )") {
  608. cur = 5;
  609. } else if (btnName == "_____") {
  610. cur = 5;
  611. }
  612. this.data.FieldContent = str1 + btnName + str2;
  613. this.setData({
  614. FieldContent: this.data.FieldContent,
  615. Focus: false,
  616. Cursor: tempCursor + cur,
  617. });
  618. btnName = "";
  619. },
  620. onSearchField: function (e) {
  621. app.globalData.TempFieldNumber = this.data.FieldNumber;
  622. wx.navigateTo({
  623. url: './searchWeb',
  624. });
  625. this.updateField();
  626. setTimeout(function () {
  627. isEdit = true;
  628. //console.log("onSearchEnd");
  629. }, 1000);
  630. },
  631. clear: function () {
  632. var that = this;
  633. //console.log("clear");
  634. this.setData({
  635. FieldContent: "",
  636. Focus: true,
  637. Cursor: 0,
  638. });
  639. btnName = "";
  640. isEdit = false;
  641. this.updateField();
  642. },
  643. closeAddItem: function (e) {
  644. var that = this;
  645. var isSave = e.currentTarget.dataset.idsave;
  646. if (isSave == "true") {
  647. isUnload = false;
  648. this.updateField();
  649. }
  650. else if (isSave == "false") {
  651. var content = wx.getStorageSync("TempCardInfoAddItem");
  652. this.setData({
  653. FieldContent: content,
  654. })
  655. this.updateField();
  656. }
  657. this.setData({
  658. HiddenFieldEdit: true,
  659. });
  660. var title = "编辑题卡";
  661. if (that.data.UpdateType == "add2") {
  662. title = "添加题卡";
  663. }
  664. wx.setNavigationBarTitle({
  665. title: title,
  666. });
  667. },
  668. updateField: function () {
  669. var str = this.data.FieldContent;
  670. var list = app.globalData.CardList;
  671. var card = {};
  672. for (var i = 0; i < list.length; i++) {
  673. if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  674. list[i].Content[this.data.FieldNumber].Content = str;
  675. card = main.changeStringToView(list[i].Content);
  676. break;
  677. }
  678. }
  679. app.globalData.CardList = list;
  680. this.setData({
  681. Field: card.Field,
  682. Tags: card.Tags,
  683. });
  684. },
  685. //选择图片上传
  686. uploadImageField: function () {
  687. //console.log("uploadImageStart");
  688. var that = this;
  689. //若是安卓机
  690. if (app.globalData.IsAndroid) {
  691. selectImage(that);
  692. }
  693. else{
  694. wx.showActionSheet({
  695. itemList: ['拍照', '从手机相册选择'],
  696. success(res) {
  697. if (res.tapIndex==0){
  698. wx.chooseImage({
  699. count: 1,
  700. sizeType: ['compressed'],
  701. sourceType: ['camera'],
  702. success(res2) {
  703. wx.showLoading({
  704. title: '请秒候',
  705. mask:true,
  706. });
  707. setTimeout(function(){
  708. wx.hideLoading();
  709. selectImage(that);
  710. },2000);
  711. },
  712. });
  713. }
  714. else if (res.tapIndex == 1) {
  715. selectImage(that);
  716. }
  717. },
  718. fail(res) {
  719. console.log(res.errMsg)
  720. }
  721. });
  722. }
  723. function selectImage(that){
  724. var sizeType = ['album'];
  725. //若是安卓机
  726. if (app.globalData.IsAndroid)
  727. sizeType = ['album', 'camera'];
  728. wx.chooseImage({
  729. count: 1,
  730. sizeType: ['compressed'],
  731. sourceType: sizeType,
  732. success(res) {
  733. // tempFilePath可以作为img标签的src属性显示图片
  734. const tempFilePaths = res.tempFilePaths;
  735. //console.log(tempFilePaths[0]);
  736. //that.data.FieldContent = that.data.FieldContent + "[图 url='" + tempFilePaths[0] + "']" + tempFilePaths[0] + "[/图]";
  737. wx.getImageInfo({
  738. src: res.tempFilePaths[0],
  739. success(res) {
  740. console.log(res.width)
  741. console.log(res.height)
  742. if (tempCursor == undefined)
  743. tempCursor = that.data.FieldContent.length;
  744. var str1 = "",
  745. str2 = "";
  746. if (that.data.FieldContent.length > 0) {
  747. str1 = that.data.FieldContent.substr(0, tempCursor);
  748. str2 = that.data.FieldContent.substring(tempCursor, that.data.FieldContent.length);
  749. }
  750. var width = res.width;
  751. if (isNaN(width))
  752. width = 650;
  753. var height = res.height;
  754. if (isNaN(height))
  755. height = 650;
  756. var str0 = "[图 w='" + width + "' h='" + height + "']" + tempFilePaths[0] + "[/图]";
  757. that.data.FieldContent = str1 + str0 + str2;
  758. tempCursor = that.data.FieldContent.length;
  759. //console.log("uploadImageEnd:" + that.data.FieldContent);
  760. that.setData({
  761. FieldContent: that.data.FieldContent,
  762. Focus: false,
  763. });
  764. that.updateField();
  765. }
  766. });
  767. },
  768. fail: function () {
  769. }
  770. });
  771. }
  772. },
  773. onShareAppMessage: function () {
  774. return {
  775. title: app.globalData.ShareTitle,
  776. path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID,
  777. imageUrl: app.globalData.ShareImage,
  778. }
  779. },
  780. })