add.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. import common from '../../utils/util';
  2. import main from '../../utils/main';
  3. const app = getApp();
  4. var field = [[], [], [], []];
  5. var arrTag = [];
  6. Page({
  7. data: {
  8. },
  9. onLoad: function (options) {
  10. wx.hideShareMenu();
  11. var that = this;
  12. var fieldid = 0;
  13. if (options.fieldid)
  14. fieldid = options.fieldid;
  15. that.setData({
  16. Containnerheight: main.getWindowHeight(),
  17. UpdateType: options.type,
  18. MiaoguoCardID: options.id,
  19. FieldID: fieldid,
  20. });
  21. wx.setStorageSync("TempMiaoguoCardID", that.data.MiaoguoCardID);
  22. common.getStorageValue(that, "IsTodayStudy", true, function () {});
  23. },
  24. onShow: function () {
  25. var that = this;
  26. if (that.data.UpdateType == "add") {
  27. that.initAddCard();
  28. }
  29. else {
  30. var card = {};
  31. var list = wx.getStorageSync("CardList");
  32. for (var i = 0; i < list.length; i++) {
  33. if (that.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  34. card = main.changeStringToView(list[i].Content);
  35. card.MiaoguoCardID = list[i].MiaoguoCardID;
  36. card.LimitTime = list[i].LimitTime;
  37. break;
  38. }
  39. }
  40. that.setData({
  41. MiaoguoCardID: card.MiaoguoCardID,
  42. Field: card.Field,
  43. Tags: card.Tags,
  44. });
  45. if (that.data.UpdateType != "add2") {
  46. wx.setNavigationBarTitle({
  47. title: '编辑题卡'
  48. });
  49. }
  50. if (that.data.UpdateType == "edit3") {
  51. that.setData({
  52. UpdateType: "edit2",
  53. });
  54. that.gotoAddItem({ currentTarget: { dataset: { fieldid: that.data.FieldID } } });
  55. }
  56. }
  57. },
  58. onUnload: function () {
  59. field = [[], [], [], []];
  60. var card = wx.getStorageSync("TempCardInfo");
  61. if (card) {
  62. var list = wx.getStorageSync("CardList");
  63. for (var i = 0; i < list.length; i++) {
  64. if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  65. list[i] = card;
  66. break;
  67. }
  68. }
  69. wx.setStorageSync("CardList", list);
  70. }
  71. },
  72. onClose: function () {
  73. wx.navigateBack({
  74. delta: 1,
  75. });
  76. },
  77. gotoAddItem: function (e) {
  78. var fieldid = e.currentTarget.dataset.fieldid;
  79. wx.navigateTo({
  80. url: './addItem?id=' + this.data.MiaoguoCardID + '&fieldid=' + fieldid,
  81. });
  82. },
  83. onSearch: function (e) {
  84. wx.removeStorageSync("TempFieldNumber");
  85. wx.navigateTo({
  86. url: './searchWeb',
  87. })
  88. },
  89. onPreview: function (e) {
  90. var that = this;
  91. if (that.data.Field[1] == "") {
  92. wx.showToast({
  93. title: '第一段必填',
  94. image: "../images/universalpic_wrong_white_120x120.png",
  95. });
  96. }
  97. else {
  98. wx.navigateTo({
  99. url: './preview?type=preview&id=' + this.data.MiaoguoCardID,
  100. });
  101. }
  102. },
  103. switch1Change(e) {
  104. this.setData({
  105. IsTodayStudy: e.detail.value,
  106. });
  107. wx.setStorageSync("IsTodayStudy", e.detail.value);
  108. },
  109. saveCard: function () {
  110. var that = this;
  111. if (that.data.Field[1] == "") {
  112. wx.showToast({
  113. title: '第一段必填',
  114. image: "../images/universalpic_wrong_white_120x120.png",
  115. });
  116. }
  117. else {
  118. that.uploadImageAll(that.data.Field, function (field) {
  119. that.data.Field=field;
  120. var userid = app.globalData.userInfo.UserID;
  121. var isTodayStudy = 0;
  122. if (that.data.IsTodayStudy && that.data.UpdateType == "add2")
  123. isTodayStudy = 1;
  124. var tags = [];
  125. for (var i = 0; i < that.data.Tags.length; i++) {
  126. if (that.data.Tags[i])
  127. tags.push(that.data.Tags[i]);
  128. }
  129. var param1 = {
  130. Tags: tags,
  131. Field1: "",
  132. Field2: "",
  133. Field3: "",
  134. IsTodayStudy: isTodayStudy,
  135. ID: that.data.MiaoguoCardID,
  136. };
  137. for (var i = 1; i <= 3; i++) {
  138. for (var key in that.data.Field[i]) {
  139. var item = that.data.Field[i][key];
  140. var str = "";
  141. if (item.Type == "image") {
  142. if (item.Url) {
  143. str = "[图 url='" + item.Url + "']" + item.Content + "[/图]";
  144. }
  145. else
  146. str = "[图]" + item.Content + "[/图]";
  147. }
  148. else if (item.Type == "line") {
  149. for (var j = 0; j < item.Content.length; j++) {
  150. if (item.Content[j].key == "normal")
  151. str += item.Content[j].value;
  152. if (item.Content[j].key == "line") {
  153. str += "[线]" + item.Content[j].value + "[/线]";
  154. }
  155. }
  156. }
  157. else if (item.Type == "sound") {
  158. if (item.SoundMark)
  159. str = "[读 src='" + item.SoundMark + "']" + item.Content + "[/读]";
  160. else
  161. str = "[读]" + item.Content + "[/读]";
  162. }
  163. else if (item.Type == "normal") {
  164. str = item.Content;
  165. }
  166. else if (item.Type == "return") {
  167. str = "\n";
  168. }
  169. param1["Field" + i] += str;
  170. }
  171. param1["Field" + i] = main.changeViewToString(param1["Field" + i]);
  172. }
  173. // var param2 = {
  174. // param: common.Encrypt(JSON.stringify(param1))
  175. // }
  176. main.postData('AddMiaoguoCard?Type=' + that.data.UpdateType + '&UserID=' + userid, param1, function (data) {
  177. if (that.data.UpdateType == "edit" || that.data.UpdateType == "edit2") {
  178. that.saveNewData();
  179. that.onClose();
  180. }
  181. else {
  182. wx.showToast({
  183. title: '已保存!',
  184. image: "../images/universalpic_saved_white_120x120.png",
  185. });
  186. if (that.data.UpdateType == "add2") {
  187. that.initAddCard();
  188. }
  189. var taskToday = wx.getStorageSync("TaskToday");
  190. taskToday.CardNumber++;
  191. wx.setStorageSync("TaskToday", taskToday);
  192. that.saveNewData();
  193. }
  194. });
  195. });
  196. }
  197. },
  198. uploadImageAll: function (arr, callback) {
  199. var that=this;
  200. var arrSource=[], arrResult=[];
  201. for(var i=0;i<arr.length;i++){
  202. for(var j=0;j<arr[i].length;j++){
  203. if (arr[i][j].Type == "image" && arr[i][j].Url && !arr[i][j].Content){
  204. //console.log("Source:" +arr[i][j].Url);
  205. arrSource.push(arr[i][j].Url);
  206. that.uploadImage(arr[i][j].Url, function (data) {
  207. //console.log("Target:"+data);
  208. data = app.globalData.uploadImageUrl+data;
  209. arrResult.push(data);
  210. });
  211. }
  212. }
  213. }
  214. var interval=setInterval(function(){
  215. //console.log(arrResult.length);
  216. if (arrResult.length >= arrSource.length){
  217. clearInterval(interval);
  218. var ari=0;
  219. for (var i = 0; i < arr.length; i++) {
  220. for (var j = 0; j < arr[i].length; j++) {
  221. if (arr[i][j].Type == "image" && arr[i][j].Url && !arr[i][j].Content) {
  222. arr[i][j].Content=arrResult[ari++];
  223. }
  224. }
  225. }
  226. //console.log(JSON.stringify(arr));
  227. callback(arr);
  228. }
  229. },500);
  230. },
  231. uploadImage:function(file,callback){
  232. var url = common.Encrypt("MiaoguoUploadFile");
  233. wx.uploadFile({
  234. url: app.globalData.serverUrl + url,
  235. filePath: file,
  236. name: 'file',
  237. success(res) {
  238. wx.hideLoading();
  239. callback(res.data);
  240. },
  241. fail: function (err) {
  242. wx.hideLoading();
  243. wx.showModal({
  244. title: '上传图片失败',
  245. showCancel: false,
  246. content: JSON.stringify(err),
  247. });
  248. }
  249. });
  250. },
  251. saveNewData: function () {
  252. var list = wx.getStorageSync("CardList");
  253. for (var i = 0; i < list.length; i++) {
  254. if (this.data.MiaoguoCardID == list[i].MiaoguoCardID) {
  255. wx.setStorageSync("TempCardInfo", list[i]);
  256. break;
  257. }
  258. }
  259. },
  260. initAddCard: function () {
  261. var card = {};
  262. card.MiaoguoCardID = 0;
  263. card.Content = [];
  264. for (var i = 0; i < 4; i++) {
  265. var obj = {};
  266. obj.ContentType = i;
  267. obj.Content = [];
  268. card.Content.push(obj);
  269. }
  270. wx.setStorageSync("CardList", [card]);
  271. this.setData({
  272. MiaoguoCardID: 0,
  273. Field: [[], [], [], []],
  274. Tags: [],
  275. UpdateType: "add2",
  276. });
  277. },
  278. onBindError: function (e) {
  279. for (var i = 1; i < this.data.Field.length; i++) {
  280. for (var j = 0; j < this.data.Field[i].length; j++) {
  281. if (this.data.Field[i][j].Type == "image") {
  282. this.data.Field[i][j].Url = this.data.Field[i][j].Content;
  283. }
  284. }
  285. }
  286. this.setData({
  287. Field: this.data.Field,
  288. });
  289. },
  290. onShareAppMessage: function () {
  291. return {
  292. title: app.globalData.ShareTitle,
  293. path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID,
  294. imageUrl: app.globalData.ShareImage,
  295. }
  296. },
  297. })