add.js 9.5 KB

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