Merge branch 'weixin_guange' into develop

This commit is contained in:
yuanke 2016-09-08 18:18:13 +08:00
commit 8c71cf1946
28 changed files with 779 additions and 183 deletions

View File

@ -89,11 +89,15 @@ module Mobile
tip = 0 #0班级1项目
type = params[:type]
result = 1
#0回复 1回复的回复
reply_type = params[:reply_type]
update_id = 0
if params[:content]!="" && current_user
case type
when "HomeworkCommon"
homework_common = HomeworkCommon.find(params[:id])
#如果是私有的 并且不是成员则不能回复
# is_public = homework_common.course.is_public
# if is_public == 0 && !current_user.member_of_course?(homework_common.course)
@ -106,15 +110,29 @@ module Mobile
# result = 2
# end
# end
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id])
if (feedback.errors.empty?)
homework_common.update_column(:updated_at, Time.now)
result = 2
if reply_type == nil || reply_type == 0
homework_common = HomeworkCommon.find(params[:id])
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id])
if (feedback.errors.empty?)
homework_common.update_column(:updated_at, Time.now)
result = 2
update_id = homework_common.id
end
else
#二级回复
reply = JournalsForMessage.find params[:id].to_i
homework_common = HomeworkCommon.find reply.jour_id
options = {:notes => params[:content], :reply_id => reply.user_id,:user_id => current_user.id,:m_parent_id => params[:id].to_i,:m_reply_id => params[:id].to_i}
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], reply.jour_id, options)
if (feedback.errors.empty?)
homework_common.update_column(:updated_at, Time.now)
result = 2
update_id = homework_common.id
end
end
when "News"
news = News.find(params[:id])
# if news.project
# if news.project.is_public == false && !current_user.member_of?(news.project)
# status = -1
@ -126,19 +144,28 @@ module Mobile
# tip = 0
# end
# end
if status == 0
comment = Comment.new
comment.comments = params[:content]
comment.author = current_user
if news.comments << comment
result = 2
if reply_type == nil || reply_type == 0
news = News.find(params[:id])
comment = Comment.new
comment.comments = params[:content]
comment.author = current_user
if news.comments << comment
result = 2
update_id = news.id
end
else
#二级回复
comment = Comment.find(params[:id])
news = News.find comment.commented_id
new_comment = news.comments.build(:author_id => current_user.id, :reply_id => params[:id], :comments => params[:content], :parent_id => comment.id)
if new_comment.save
result = 2
update_id = news.id
end
end
end
when "Message"
message = Message.find(params[:id])
board = Board.find(message.board_id)
# if message.project
# if message.project.is_public == false && !current_user.member_of?(message.project)
# status = -1
@ -152,20 +179,26 @@ module Mobile
# end
if status == 0
topic = message.root
reply = Message.new
reply.author = current_user
reply.board = board
reply.content = params[:content]
reply.parent_id = params[:id]
reply.subject = "RE: #{topic.subject}"
if topic.children << reply
result = 2
end
# if reply_type == nil || reply_type == 0
message = Message.find(params[:id])
board = Board.find(message.board_id)
topic = message.root
reply = Message.new
reply.author = current_user
reply.board = board
reply.content = params[:content]
reply.parent_id = params[:id]
reply.subject = "RE: #{topic.subject}"
if message.children << reply
result = 2
update_id = topic.id
end
# else
#二级回复
# end
end
when "JournalsForMessage"
jour = JournalsForMessage.find params[:id]
# if jour.jour_type == "Project"
# if jour.project.is_public == false && !current_user.member_of?(jour.project)
# status = -1
@ -179,64 +212,108 @@ module Mobile
# end
if status == 0
parent_id = params[:id]
author_id = current_user.id
reply_user_id = jour.user_id
reply_id = params[:id]
content = params[:content]
options = {:user_id => author_id,
:status => true,
:m_parent_id => parent_id,
:m_reply_id => reply_id,
:reply_id => reply_user_id,
:notes => content,
:is_readed => false}
jfm = jour.user.add_jour(nil, nil, nil, options)
if jfm.errors.empty?
(JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now)
result = 2
end
# if reply_type == nil || reply_type == 0
jour = JournalsForMessage.find(params[:id]).root
parent_id = params[:id]
author_id = current_user.id
reply_user_id = jour.user_id
reply_id = params[:id]
content = params[:content]
options = {:user_id => author_id,
:status => true,
:m_parent_id => parent_id,
:m_reply_id => reply_id,
:reply_id => reply_user_id,
:notes => content,
:is_readed => false}
jfm = jour.user.add_jour(nil, nil, nil, options)
if jfm.errors.empty?
(JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now)
result = 2
update_id = jour.id
end
# else
#二级回复
# end
end
when 'Issue'
issue = Issue.find params[:id]
# if issue.project.is_public == false && !current_user.member_of?(issue.project)
# status = -1
# tip = 1
# end
if status == 0
is_jour = Journal.new
is_jour.user_id = current_user.id
is_jour.notes = params[:content]
is_jour.journalized = issue
if is_jour.save
result = 2
if reply_type == nil || reply_type == 0
issue = Issue.find params[:id]
is_jour = Journal.new
is_jour.user_id = current_user.id
is_jour.notes = params[:content]
is_jour.journalized = issue
if is_jour.save
result = 2
update_id = issue.id
end
else
#二级回复
jour = Journal.find(params[:id])
issue = jour.journalized
is_jour = Journal.new
is_jour.user_id = current_user.id
is_jour.notes = params[:content]
is_jour.reply_id = params[:id]
is_jour.parent_id = params[:id]
is_jour.journalized = issue
if is_jour.save
result = 2
update_id = issue.id
end
end
end
when 'BlogComment'
blog = BlogComment.find(params[:id]).root
blogComment = BlogComment.new
blogComment.author = current_user
blogComment.blog = blog.blog
blogComment.content = params[:content]
blogComment.title = "RE: #{blog.title}"
if blog.children << blogComment
result = 2
if reply_type == nil || reply_type == 0
blog = BlogComment.find(params[:id]).root
blogComment = BlogComment.new
blogComment.author = current_user
blogComment.blog = blog.blog
blogComment.content = params[:content]
blogComment.title = "RE: #{blog.title}"
if blog.children << blogComment
result = 2
update_id = blog.id
end
else
#二级回复
blog = BlogComment.find(params[:id]).root
blogComment = BlogComment.new
blogComment.author = current_user
blogComment.blog = blog.blog
blogComment.content = params[:content]
blogComment.title = "RE: #{blog.title}"
parent = BlogComment.find params[:id]
blogComment.parent_id = params[:id] #被回复的回复
blogComment.reply_id = parent.author.id #被回复者id
if parent.children << blogComment
result = 2
update_id = blog.id
end
end
end
if result == 2
update_course_activity_api(type,params[:id])
update_user_activity_api(type,params[:id])
update_org_activity_api(type,params[:id])
update_forge_activity_api(type,params[:id])
update_principal_activity_api(type,params[:id])
update_course_activity_api(type,update_id)
update_user_activity_api(type,update_id)
update_org_activity_api(type,update_id)
update_forge_activity_api(type,update_id)
update_principal_activity_api(type,update_id)
end
else
result = 3
end
present :result, result
present :status, status
present :act_id, update_id
present :tip, tip
present :subscribe,subscribe
end

View File

@ -4,6 +4,61 @@ module Mobile
class Users < Grape::API
resource :users do
desc "我的资料"
params do
requires :token, type: String
end
get 'get_userinfo' do
authenticate!
present :data, current_user, with: Mobile::Entities::User
present :status, 0
end
desc "上传头像"
params do
requires :token, type: String
requires :imgdata, type: String
end
post 'upload_head' do
authenticate!
#直接生成头像
dirPath = "public/images/avatars/User"
fileDir = dirPath + "/"+current_user.id.to_s
imgdata = Base64.decode64(params[:imgdata].split(",")[1])
if imgdata.length > 1024*1024
present :message,"上传图片不能超过1M"
present :status, -1
else
begin
File.open(fileDir,'wb'){ |f| f.write(imgdata) }
present :status, 0
rescue
present :message,"上传失败"
present :status, -1
end
end
end
desc "解除绑定"
params do
requires :token, type: String
end
post 'user_unbind' do
authenticate!
user = current_user
uw = user.user_wechat
us = UsersService.new
us.wechat_unbind user.user_wechat
present :status, 0
end
desc "查询是否已绑定"
params do
requires :openid, type: String, desc: 'wechat openid'
@ -221,6 +276,73 @@ module Mobile
present :data,my_jours,with:Mobile::Entities::Jours
present :status,0
end
desc "修改我的资料"
params do
requires :token, type: String
requires :lastname, type: String
requires :sex, type: Integer
requires :mail, type: String
end
post 'edit_userinfo' do
authenticate!
user = current_user
status = 0
message = ""
#昵称 不能超过30个字符
if params[:lastname].length > 30 then
message = "姓名不能超过30个字符!"
status = -1
end
if params[:mail].length > 60 then
message = "邮箱地址不能超过60个字符!"
status = -1
end
if !(params[:mail].match(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i))
message = "请输入正确的邮箱地址!"
status = -1
end
if status == 0
# 修改邮箱的时候同步修改到gitlab
if user.mail != params[:mail]
g = Gitlab.client
begin
g.edit_user(user.gid, :email => params[:mail])
rescue
Rails.logger.error "sync user's email of gitlab failed!"
end
end
user.mail = params[:mail]
user.lastname = params[:lastname]
se = user.extensions
se.gender = params[:sex]
if user.save && se.save
status = 0
else
message = "该邮箱地址已被使用!"
status = -1
end
end
if status == 0
present :data, current_user, with: Mobile::Entities::User
present :status, 0
else
present :status, -1
present :message, message
end
end
end
end
end

View File

@ -30,15 +30,24 @@ module Mobile
u.nil? ? "" : u.show_name
when :roles_id
u[:roles_id].nil? ? nil : u.roles_id
when :login
u.login
when :lastname
u.lastname
when :mail
u.mail
end
end
end
end
end
expose :id
#头像
user_expose :login
user_expose :lastname
#邮箱地址
user_expose :mail
expose :nickname
#真名
user_expose :img_url
@ -51,8 +60,6 @@ module Mobile
#我的二维码
#工作单位
user_expose :work_unit
#邮箱地址
user_expose :mail
#地区
user_expose :location
#签名

View File

@ -167,6 +167,27 @@ class WechatsController < ActionController::Base
end
end
on :click, with: 'UNBIND' do |request, key|
uw = user_binded?(request[:FromUserName])
unless uw
request.reply.text "您还未绑定帐号"
else
#解除绑定
us = UsersService.new
us.wechat_unbind uw
tmpurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities'}&response_type=code&scope=snsapi_base&state=login&connect_redirect=1#wechat_redirect"
news = (1..1).each_with_object([]) { |n, memo| memo << { title: '重新绑定提醒',
content: "尊敬的用户,您已解除绑定。\n解除时间:#{format_time(Time.now)}\n点击进入重新绑定!"} }
request.reply.news(news) do |article, n, index| # article is return object
url = tmpurl
article.item title: "#{n[:title]}",
description: n[:content],
url: url
end
end
end
def join_class_request(request)
openid = request[:FromUserName]
wl = WechatLog.where("openid = '#{openid}' and request_raw like '%\"Event\":\"click\"%'").order('id desc').first

View File

@ -941,46 +941,36 @@ class CoursesService
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation}
end
def student_homework_score(groupid,course_id, nums, score_sort_by)
#teachers = find_course_teachers(@course)
#start_from = start_from * nums
def student_homework_score(groupid,course_id, nums, score_sort_by, sort_type = 'score')
sql_select = ""
if groupid == 0
if nums == 0
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id}) GROUP BY members.user_id
UNION all
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id} AND
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
)
GROUP BY members.user_id ORDER BY score #{score_sort_by}"
else
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id}) GROUP BY members.user_id
UNION all
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id} AND
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
)
GROUP BY members.user_id ORDER BY score #{score_sort_by} " #limit #{start_from}, #{nums}"
end
sql_select = "SELECT members.*,(
SELECT SUM(student_works.work_score)
FROM student_works,homework_commons
WHERE student_works.homework_common_id = homework_commons.id
AND homework_commons.course_id = course_id
AND student_works.user_id = members.user_id
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{course_id} AND ccs.user_id = members.user_id
) AS act_score
FROM members
JOIN students_for_courses
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
WHERE members.course_id = #{course_id} ORDER BY #{sort_type} #{score_sort_by}"
else
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
and members.course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id})
GROUP BY members.user_id
UNION all
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id}
and members.course_group_id = #{groupid} AND
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
)
GROUP BY members.user_id ORDER BY score #{score_sort_by}"
sql_select = "SELECT members.*,(
SELECT SUM(student_works.work_score)
FROM student_works,homework_commons
WHERE student_works.homework_common_id = homework_commons.id
AND homework_commons.course_id = #{course_id}
AND student_works.user_id = members.user_id
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{course_id} AND ccs.user_id = members.user_id
) AS act_score
FROM members
JOIN students_for_courses
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
WHERE members.course_id = #{course_id} AND members.course_group_id = #{groupid} ORDER BY #{sort_type} #{score_sort_by}"
end
sql = ActiveRecord::Base.connection()
homework_scores = Member.find_by_sql(sql_select)

View File

@ -1,3 +1,4 @@
#coding=utf-8
class UsersService
include ApplicationHelper
include AccountHelper
@ -319,8 +320,22 @@ class UsersService
my_jours_arr
end
def wechat_unbind uw
user = uw.user
#发重新绑定的微信模版消息
type = "login"
title = "尊敬的用户,您已解除绑定。"
key1 = "个人原因"
remark = "点击进入重新绑定。"
ws = WechatService.new
ws.rebind_notice user.id, type, user.id, title, key1,format_time(Time.now), remark
uw.user_id = nil
uw.delete
end
end

View File

@ -445,4 +445,41 @@ class WechatService
end
end
def rebind_notice(user_id, type, id, first, key1, key2,remark="")
uw = UserWechat.where(user_id: user_id).first
unless uw.nil?
data = {
touser:uw.openid,
template_id:Wechat.config.rebind_notice,
url:Wechat.config.auto_openid_url_1+Wechat.config.auto_openid_url_2+"login"+Wechat.config.auto_openid_url_3,
topcolor:"#FF0000",
data:{
first: {
value:first,
color:"#707070"
},
keyword1:{
value:key1,
color:"#707070"
},
keyword2:{
value:key2,
color:"#707070"
},
remark:{
value:remark,
color:"#707070"
}
}
}
#data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark
begin
req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data)
rescue Exception => e
Rails.logger.error "[rebind_notice] ===> #{e}"
end
Rails.logger.info "send over. #{req}"
end
end
end

View File

@ -30,3 +30,7 @@ button:
type: "click"
name: "联系我们"
key: "FEEDBACK"
-
type: "click"
name: "解除绑定"
key: "UNBIND"

View File

@ -30,3 +30,7 @@ button:
type: "click"
name: "联系我们"
key: "FEEDBACK"
-
type: "view"
name: "个人资料"
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=edit_userinfo#wechat_redirect"

View File

@ -26,6 +26,7 @@ default: &default
join_project_notice: "TtXvy0XMIQyCgpnXHhoB8t-x0QIfy-78gAJXsGf9afg"
project_issue_notice: "HP8JejOnkzmvFopTarc0l1Tp4bU9qnxzdH27x3186lI"
at_notice: "U3kqzgriCaqkPI9qX0NDQOInJ5hiwHCz6wgTsPysSx4"
rebind_notice: "OYsiECfqUlHKlzF_X-pz_xsGh_vAAUunX0jYRdHlyFU"
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities"
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="

View File

@ -26,6 +26,7 @@ default: &default
join_project_notice: "3KnMQEMUCmQWkB5JvzrpmguEwnN8bvUHUdpOTudxv_M"
project_issue_notice: "HAF2aCta7BtnaOd_cotGvU4tErGWwCd9I9aiClFN7w8"
at_notice: "p4HfyZQuF8O5bP_44RbbJS30SGojLJAuZEqp34iB4JU"
rebind_notice: "B97nOiW9cscB_d078I3k0jaPLHeJThTKUuxMoUnWZ2U"
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities"
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="

View File

@ -40,7 +40,7 @@
<script src="/javascripts/wechat/directives/input_focus.js"></script>
<script src="/javascripts/wechat/directives/at_delete_link.js"></script>
<script src="/javascripts/wechat/directives/iphone_recognize.js"></script>
<script src="/javascripts/wechat/directives/submit_start.js"></script>
<script src="/javascripts/wechat/directives/multi_reply.js"></script>
<script src="/javascripts/wechat/controllers/reg.js"></script>
<script src="/javascripts/wechat/controllers/login.js"></script>
<script src="/javascripts/wechat/controllers/activity.js"></script>

View File

@ -73,7 +73,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,blog)" class="fr mr25 f13 reply-icons multi-hide" >
<img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(blog)" ng-blur="inputblur(blog)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
</div>
@ -82,13 +92,13 @@
</div>
</div>
<div ng-if="!blog.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!blog.notshow" ng-if="!blog.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="blog.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(blog,0)" ng-disabled="blog.disabled" ng-hide="blog.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="blog.disabled" ng-hide="!blog.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -71,7 +71,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,discussion)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(discussion)" ng-blur="inputblur(discussion)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
@ -79,13 +89,13 @@
</div>
</div>
<div ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!discussion.notshow" ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="discussion.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(discussion,0)" ng-disabled="discussion.disabled" ng-hide="discussion.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="discussion.disabled" ng-hide="!discussion.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -86,7 +86,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,news)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(news)" ng-blur="inputblur(news)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
@ -94,13 +104,13 @@
</div>
</div>
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!news.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="news.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(news,0)" ng-disabled="news.disabled" ng-hide="news.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="news.disabled" ng-hide="!news.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -0,0 +1,44 @@
<div class="post-container">
<div loading-spinner></div>
<div class="blue-title">编辑资料</div>
<div class="blank-row mt10">
<div class="upload-input-container img-circle fl ml10 mt4">
<!--<input class="upload-input" accept="image/*" multiple="" type="file">-->
<!--<input class="upload-input" type="file" capture="camera" accept="image/*" load-head>-->
<img ng-src="{{replaceUrl(user.img_url)}}" width="30" class="fl img-circle" style="position:absolute;" />
</div>
<span class="fl ml25">{{user.login}}</span><span ng-click="unbind()" class="fr f13 mr10 c-blue">解除绑定</span><div class="cl"></div></div>
<form name="regFrm" novalidate>
<div class="course-list-row f13 c-grey3 mt10"><span class="fl ml15 c-grey3">姓名</span><input class="new-class-input ml25" ng-model="lastname" placeholder="请输入您的姓名全称" maxlength="30" /></div>
<div class="course-list-row f13 c-grey3 mt10" style="height:auto;">
<div class="mt5" style="line-height:20px">
<span class="ml15 c-grey3">性别</span>
<span class="ml25"></span>
<span class="login-box fr mr10 mt2" ng-click="sex=0" ng-class="['login-box', 'fr', 'mr10', 'img-circle', {'checked': sex==0}]"></span>
</div>
<div class="mb5 mt5" style="line-height:20px;">
<span class="ml15 c-grey3"></span>
<span class="ml55"></span>
<span class="login-box fr mr10 mt2" ng-click="sex=1" ng-class="['login-box', 'fr', 'mr10', 'img-circle', {'checked': sex==1}]"></span>
</div>
</div>
<div class="course-list-row f13 c-grey3 mt10">
<span class="fl ml15 c-grey3">邮箱</span>
<input class="new-class-input ml25" type="email" name="email" ng-model="mail" placeholder="请输入您的邮箱地址" maxlength="60" />
<div ng-show="regFrm.$submitted || regFrm.email.$touched">
<span class="f12 c-red fl ml15" ng-show="regFrm.email.$error.required">电子邮箱地址不能为空</span>
<span class="f12 c-red fl ml15" ng-show="regFrm.email.$error.email">电子邮箱地址不合法</span>
</div>
</div>
<div class="bottom-tab-wrap mt10">
<a ng-click="cancel()" class="weixin-tab c-grey border-top">取消</a>
<a ng-click="confirm(regFrm)" ng-class="[{'btn-disabled':!regFrm.$valid} ]" class="weixin-tab link-blue2 border-top">确定</a>
</div>
</form>
<my-alert message="alertService_1.message" title="alertService_1.title" visible="alertService_1.visible" cb="alertService_1.cb"></my-alert>
<my-alert2 message="alertService_2.message" title="alertService_2.title" visible="alertService_2.visible" cb="alertService_2.cb"></my-alert2>
</div>

View File

@ -75,7 +75,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,homework)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(homework)" ng-blur="inputblur(homework)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
@ -83,13 +93,13 @@
</div>
</div>
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!homework.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="homework.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(homework,0)" ng-disabled="homework.disabled" ng-hide="homework.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="homework.disabled" ng-hide="!homework.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -92,7 +92,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,issue)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(issue)" ng-blur="inputblur(issue)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
@ -100,13 +110,13 @@
</div>
</div>
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!issue.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="issue.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(issue,0)" ng-disabled="issue.disabled" ng-hide="issue.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="issue.disabled" ng-hide="!issue.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -70,7 +70,17 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,message)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(message)" ng-blur="inputblur(message)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
@ -78,13 +88,13 @@
</div>
</div>
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!message.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="message.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(message,0)" ng-disabled="message.disabled" ng-hide="message.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="message.disabled" ng-hide="!message.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -71,20 +71,30 @@
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
</div>
<div ng-click="clickReply(journal.act_id,discussion)" class="fr mr25 f13 reply-icons multi-hide">
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
</div>
<div class="cl"></div>
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea ng-focus="inputfocus(discussion)" ng-blur="inputblur(discussion)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>
</div>
<div ng-if="has_more">
<div id="more_reply" class="more-events mt10" ng-click="showMoreReply(0,discussion);">更多</div>
</div>
</div>
<div ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div ng-show="!discussion.notshow" ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
<div class="post-reply-row border-bottom-none">
<div class="post-input-container">
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="discussion.comment" placeholder="输入回复内容~" /></textarea>
<button ng-click="addReply(discussion,0)" ng-disabled="discussion.disabled" ng-hide="discussion.disabled" class="post-reply-submit fr border-radius">提交</button>
<button ng-disabled="discussion.disabled" ng-hide="!discussion.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
<div class="cl"></div>
</div>
</div>

View File

@ -0,0 +1,93 @@
app.controller('EditUserInfoController', ['$scope', 'config','$http', 'auth','$location','$routeParams','alertService','rms','common','$timeout','wx', function($scope, config, $http, auth, $location, $routeParams,alertService,rms,common,$timeout,wx){
// common.checkLogin();
$scope.replaceUrl = function(url){
return url;
};
var vm = $scope;
//单弹框
vm.alertService_1 = alertService.create();
//双弹框
vm.alertService_2 = alertService.create();
vm.getuserinfo = function(){
$http.get(config.apiUrl + 'users/get_userinfo?token='+auth.token()).then(
function(response) {
console.log(response.data);
vm.user = response.data.data;
vm.lastname = vm.user.lastname;
vm.mail = vm.user.mail;
vm.sex = vm.user.gender;
vm.user.img_url = vm.user.img_url +"?t="+Math.random();
}
);
};
vm.getuserinfo();
vm.unbind = function(){
vm.alertService_2.showMessage('提示', '是否确认解除绑定', function() {
$http.post(config.apiUrl + "users/user_unbind",
{token: auth.token()}
).then(function (response) {
if (response.data.status == 0) {
vm.alertService_1.showMessage('提示', '解除绑定成功', function () {
wx.closeWindow();
});
}
else {
vm.alertService_1.showMessage('提示', response.data.message);
}
});
});
};
vm.cancel = function(){
vm.alertService_2.showMessage('提示', '是否确认取消', function() {
wx.closeWindow();
});
};
vm.confirm = function(frm){
frm.$setSubmitted();
console.log(frm);
if (!frm.$valid) {
console.log(frm.$error);
return;
}
if(vm.lastname == ""){
vm.alertService_1.showMessage('提示', '姓名不能为空');
return;
}
if(vm.mail == ""){
vm.alertService_1.showMessage('提示', '邮箱不能为空');
return;
}
// if(!(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i.test(vm.mail))){
// vm.alertService_1.showMessage('提示', '邮箱不合法');
// return;
// }
$http.post(config.apiUrl + "users/edit_userinfo",
{token: auth.token(),lastname: vm.lastname, sex: vm.sex, mail: vm.mail}
).then(function(response){
if(response.data.status == 0)
{
vm.alertService_1.showMessage('提示', '修改成功',function(){
wx.closeWindow();
});
}
else{
vm.alertService_1.showMessage('提示', response.data.message);
}
});
};
}]);

View File

@ -1,19 +1,40 @@
app.directive('inputAuto',function(){
return{
restrict: 'A',
scope: {},
link: function(scope, element){
var copyContainer = element.parent().children().children().eq(0);
var sendButton = element.next();
element.on('input',function(){
//console.log(sendButton);
copyContainer.html(element[0].value);
var textHeight = copyContainer[0].scrollHeight-10;
element.css('height', textHeight + 'px');
});
sendButton.on('click',function(){
element.css('height','18px');
});
}
}
});
//app.directive('inputAuto',function(){
// return{
// restrict: 'A',
// scope: {},
// link: function(scope, element){
// var copyContainer = element.parent().children().children().eq(0);
// var sendButton = element.next();
// element.on('input',function(){
// //console.log(sendButton);
// copyContainer.html(element[0].value);
// var textHeight = copyContainer[0].scrollHeight-10;
// element.css('height', textHeight + 'px');
// });
// sendButton.on('click',function(){
// element.css('height','18px');
// });
// }
// }
//});
app.directive('inputAuto',["$timeout",function(timer){
return{
restrict: 'A',
scope: {},
link: function(scope, element){
timer(function(){
$(".post-reply-input").bind("input",function(){
var copyInput = $(this).prev().children();
var sendButton = $(this).next();
copyInput.html($(this).val());
var textHeight = copyInput[0].scrollHeight-10;
$(this).css("height",textHeight + "px");
sendButton.click(function(){
$(this).prev().css("height","18px");
})
});
});
}
}
}]);

View File

@ -0,0 +1,35 @@
app.directive('loadHead',['$http','config','auth','$location','alertService',function($http,config,auth,$location,alertService){
return{
restrict: 'A',
scope: {},
link: function (scope, element, attrs) {
element.bind('change', function(){
var file = event.target.files[0];
//判断类型是不是图片
if (!/image\/\w+/.test(file.type)) {
alert("非图片");
return;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (e) {
// alert(this.result);//base64
$http.post(config.apiUrl + "users/upload_head",
{token: auth.token(),imgdata:this.result}
).then(function (response) {
if(response.data.status == 0){
scope.$parent.alertService_1.showMessage('提示',"上传成功",function(){
scope.$parent.getuserinfo();
});
}
else{
scope.$parent.alertService_1.showMessage('提示',response.data.message);
}
});
}
});
}
}
}]);

View File

@ -0,0 +1,42 @@
/**
* Created by ttang on 2016/9/5.
*/
app.directive('multiReply',["$timeout",function(timer){
return{
restrict: 'A',
scope: {},
link: function(scope, element){
timer(function(){
$(".reply-icons").each(function(){
$(this).toggle(function(){
$(this).next().next().removeClass("undis");
$(this).next().next().focus();
},function(){
$(this).next().next().addClass("undis");
});
});
// $(".reply-icons").live("click",function(){
// if($(this).hasClass("multi-hide")){
// $(".multi-input-container").addClass("undis");
// $(".reply-icons").addClass("multi-hide");
// $(this).next().next().removeClass("undis");
// $(this).next().next().focus();
// $(this).removeClass("multi-hide");
// $(".post-reply-input").val("");
// }
// else{
// $(this).addClass("multi-hide");
// $(".post-input-container").addClass("undis");
// $(".post-reply-input").val("");
// $("#post_input_1, #post_input_1 .post-input-container").show();
// }
// });
// $(".post-reply-submit,#more_reply").click(function(){
// $(".reply-icons").addClass("multi-hide");
// $(".post-input-container").addClass("undis");
// $("#post_input_1, #post_input_1 .post-input-container").show();
// });
})
}
}
}]);

View File

@ -1,17 +0,0 @@
/**
* Created by ttang on 2016/8/31.
*/
app.directive('submitStart',["$timeout",function(timer){
return{
restrict: 'A',
scope: {},
link: function(scope, element){
timer(function(){
$("#manageDelete,.login-box").click(function(){
element.removeClass("bg-grey c-white");
element.addClass("link-blue2");
});
})
}
}
}]);

View File

@ -94,7 +94,7 @@ app.factory('rms', function(){
});
app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
var addCommonReply = function(id, type, data,args, cb){
var addCommonReply = function(id, type, data,args,reply_type, cb){
//先判断有没有绑定
// $http.post(
// '/wechat/is_bind',
@ -111,12 +111,12 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
}
var temp = data.comment.replace(/\n/g,'<br/>');
temp = temp.replace(/^\:[a-z0-9_]+\:$/g, "[表情]");
var userInfo = {
type: type,
content: temp,
token: auth.token()
token: auth.token(),
reply_type:reply_type
};
//回复按钮禁用
data.disabled = true;
@ -146,24 +146,26 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
cb(response.data.subscribe);
}
var act_id = response.data.act_id;
//保证内外回复数一致
activities = rms.get("activities") || [];
course_activities = rms.get("course_activities") || [];
project_activities = rms.get("project_activities") || [];
for(var i in activities){
if(activities[i].act_id == id){
if(activities[i].act_id == act_id){
activities[i].reply_count += 1;
break;
}
}
for(var i in course_activities){
if(course_activities[i].act_id == id){
if(course_activities[i].act_id == act_id){
course_activities[i].reply_count += 1;
break;
}
}
for(var i in project_activities){
if(project_activities[i].act_id == id){
if(project_activities[i].act_id == act_id){
project_activities[i].reply_count += 1;
break;
}
@ -222,7 +224,7 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
var init = function(args){
args.scope.replytip = "输入回复内容~";
args.scope.formData = {comment: ''};
// args.scope.formData = {comment: ''};
var loadData = function(id,replytype,page){
loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
console.log(response.data);
@ -304,10 +306,10 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
};
loadData(args.id,0,0);
args.scope.addReply = function(data){
args.scope.addReply = function(data,reply_type){
console.log(data.comment);
addCommonReply(args.id, args.replyType, data,args, function(subscribe){
args.scope.formData = {comment: ''};
addCommonReply(data.act_id, args.replyType, data,args,reply_type, function(subscribe){
// args.scope.formData = {comment: ''};
if(subscribe == 0){
$location.path("/login_tip");
return;
@ -322,6 +324,27 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
});
};
args.scope.inputfocus = function(data){
data.notshow = true;
};
args.scope.inputblur = function(data){
data.notshow = false;
};
args.scope.clickReply = function(act_id,data) {
allchidren = data.all_children;
for(var i in allchidren){
if(allchidren[i].act_id != act_id ){
allchidren[i].showinput = false;
}
else{
allchidren[i].showinput = !allchidren[i].showinput;
data.notshow = allchidren[i].showinput;
}
}
};
// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
args.scope.addPraise = function(act){
activities = rms.get("activities") || [];

View File

@ -51,6 +51,7 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func
.when('/review_project_member', makeRoute('review_project_member.html', 'ReviewProjectMemberController'))
.when('/project_publishnote', makeRoute('project_publishnote.html', 'ProjectPublishNoteController'))
.when('/login_tip', makeRoute('login_tip.html', 'LoginTipController'))
.when('/edit_userinfo', makeRoute('edit_userinfo.html', 'EditUserInfoController'))
.otherwise({
redirectTo: '/activites'
});

View File

@ -257,4 +257,9 @@ a.underline {text-decoration:underline;}
/*发布帖子,通知*/
.full-width-wrap {padding:5px 15px; background-color:#fff; border-top:1px solid #ddd; border-bottom:1px solid #ddd;}
.full-width-textarea {width:100%; height:180px; line-height:18px; max-height:180px; border:none; resize:none; font-size:13px; color:#555; overflow-y:auto;}
.full-width-textarea {width:100%; height:180px; line-height:18px; max-height:180px; border:none; resize:none; font-size:13px; color:#555; overflow-y:auto;}
/*资料修改*/
.blank-row {width:100%; height:38px; line-height:38px; vertical-align:middle;}
.upload-input-container {width:30px; height:30px; border:1px solid #ddd; position:relative;}
.upload-input {width:30px; height:30px; position:absolute; z-index:1; opacity:0;}